Stavo seguendo un tutorial sulle normali forme di database SQL, e mi sono confuso approdando su questo esempio: link .
Da
CREATE TABLE CUSTOMERS(
CUST_ID INT NOT NULL,
CUST_NAME VARCHAR (20) NOT NULL,
DOB DATE,
STREET VARCHAR(200),
CITY VARCHAR(100),
STATE VARCHAR(100),
ZIP VARCHAR(12),
EMAIL_ID VARCHAR(256),
PRIMARY KEY (CUST_ID)
);
Crea una nuova tabella ADDRESS in questo modo perché esiste una "dipendenza transitiva tra zipcode e indirizzo".
CREATE TABLE ADDRESS(
ZIP VARCHAR(12),
STREET VARCHAR(200),
CITY VARCHAR(100),
STATE VARCHAR(100),
PRIMARY KEY (ZIP)
);
Questo è il posto in cui sono davvero confuso. Perché utilizzare il codice postale come chiave primaria? Le chiavi primarie devono essere uniche, non puoi avere due indirizzi con lo stesso codice postale?
In entrambi i
- Non capisco come funziona un codice postale
- Non capisco come funzioni una chiave primaria
- Questo esempio è chiaramente sbagliato
- Non capisco qualcos'altro.