-
Идеята при проектирането на база данни е всеки елемент от данни да бъде отделен. И всеки елемент има свой собствен тип данни, ограничения и правила. Това
c0002не е едно поле, а две. Същото сXXXnnnили каквото и да е. Това е неправилно и сериозно ще ограничи възможността ви да използвате данните и да използвате функции и съоръжения на базата данни.Разбийте го на два отделни елемента от данни:
column_1 CHAR(1)
column_2 INTEGERСлед това задайте AUTOINCREMENT на
column_2И да, вашият първичен ключ може да бъде
(column_1, column_2), така че не сте загубили каквото и да е значениеc0002има за вас. -
Никога не поставяйте доставчици и клиенти (каквото и да означава "c" и "s") в една и съща таблица. Ако направите това, няма да имате таблица с база данни, ще имате плосък файл. И различни проблеми и ограничения, произтичащи от това.
Това означава, нормализирайте данните. В крайна сметка ще получите:
- една таблица за
PersonилиOrganisationсъдържащ общите данни (Name, Address...) - една таблица за
Customerсъдържащи специфични за клиента данни (CreditLimit...) - една таблица за
Supplierсъдържащи специфични за доставчика данни (PaymentTerms...) - без двусмислени или незадължителни колони, следователно без нулеви стойности
- няма ограничения за използване или SQL функции
.
И когато трябва да добавите колони, вие го правите само там, където е необходимо, без да засягате всички други дела на плоския файл. Обхватът на ефекта е ограничен до обхвата на промяната.
- една таблица за