-
Ideą w projektowaniu bazy danych jest oddzielenie każdego elementu danych. A każdy element ma swój własny typ danych, ograniczenia i reguły. Ten
c0002
to nie jedno pole, ale dwa. To samo zXXXnnn
lub cokolwiek. Jest niepoprawny i poważnie ograniczy Twoją zdolność do korzystania z danych oraz korzystania z funkcji i udogodnień bazy danych.Podziel go na dwa dyskretne elementy danych:
column_1 CHAR(1)
column_2 INTEGERNastępnie ustaw AUTOINCREMENT na
column_2
I tak, kluczem podstawowym może być
(column_1, column_2)
, więc nie straciłeś żadnego znaczeniac0002
ma dla Ciebie. -
Nigdy nie umieszczaj dostawców i klientów (cokolwiek oznacza „c” i „s”) w tej samej tabeli. Jeśli to zrobisz, nie będziesz miał tabeli bazy danych, będziesz miał plik płaski. I różne problemy i ograniczenia z tego wynikające.
Oznacza to normalizację danych. Otrzymasz:
- jedna tabela dla
Person
lubOrganisation
zawierające wspólne dane (Name, Address
...) - jedna tabela dla
Customer
zawierające dane specyficzne dla klienta (CreditLimit
...) - jedna tabela dla
Supplier
zawierające dane specyficzne dla dostawcy (PaymentTerms
...) - brak niejednoznacznych lub opcjonalnych kolumn, dlatego nie ma wartości Null
- brak ograniczeń w korzystaniu z funkcji SQL
.
A kiedy musisz dodać kolumny, robisz to tylko tam, gdzie jest to wymagane, bez wpływu na wszystkie inne przypadki pliku płaskiego. Zakres efektu jest ograniczony do zakresu zmiany.
- jedna tabela dla