-
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
c0002non è un campo, ma due. Lo stesso conXXXnnno 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_2E sì, la tua chiave primaria può essere
(column_1, column_2), quindi non hai perso alcun significatoc0002ha 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
PersonoOrganisationcontenente i dati comuni (Name, Address...) - una tabella per
Customercontenente dati specifici del cliente (CreditLimit...) - una tabella per
Suppliercontenente 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