-
L'idea nella progettazione del database è di mantenere ogni elemento di dati separato. E ogni elemento ha il proprio tipo di dati, vincoli e regole. Quel
c0002
non è un campo, ma due. Lo stesso conXXXnnn
o altro. Non è corretto e limiterà notevolmente la tua capacità di utilizzare i dati e di utilizzare le funzionalità e le strutture del database.Suddividilo in due elementi di dati discreti:
column_1 CHAR(1)
column_2 INTEGERQuindi imposta AUTOINCREMENT su
column_2
E sì, la tua chiave primaria può essere
(column_1, column_2)
, quindi non hai perso alcun significatoc0002
ha per te. -
Non inserire mai fornitori e clienti (qualunque cosa significhi "c" e "s") nella stessa tabella. Se lo fai, non avrai una tabella di database, avrai un file flat. E vari problemi e limitazioni conseguenti.
Ciò significa, Normalizza i dati. Ti ritroverai con:
- una tabella per
Person
oOrganisation
contenente i dati comuni (Name, Address
...) - una tabella per
Customer
contenente dati specifici del cliente (CreditLimit
...) - una tabella per
Supplier
contenente dati specifici del fornitore (PaymentTerms
...) - nessuna colonna ambigua o facoltativa, quindi nessun Null
- nessuna limitazione all'uso o alle funzioni SQL
.
E quando devi aggiungere colonne, lo fai solo dove è richiesto, senza intaccare tutte le altre cause del flat file. La portata dell'effetto è limitata alla portata della modifica.
- una tabella per