Добрый день. Составляю структуру БД, но что-то завис на 1 моменте.
В общем есть таблицы: contragent, auto.
И думаю как лучше сделать таблицы с контактными данными. Есть пока пара вариантов.
1) Создать таблицу driver (id, fio, id_auto, p_num,d_dum,phone), contragent_contacts (id,id_contragent,fio,e_mail,work_phone,mobile_phone,birthday,note).
Как видно тут некоторые поля пересекаются. p_num - паспортные данные, d_num - данные водительского удостоверения. В таблице contragent_contacts паспортные данные могут появиться позже, а могут вообще не появиться.
2) Создать таблицу individual в которой указать все поля, которые перечислены в таблицах driver & contragent_contacts. И для данных, которых нет, записывать NULL. Соответственно может возникать куча ячеек со значениями NULL. Не знаю на сколько это корректно. =/
И создать таблицы driver (id,id_individual,id_auto), contragent_contacts (id,id_individual,id_contragent).
Мне кажется 2-ой вариант предпочтительнее, потому что в дальнейшем возможно будут возникать ещё таблицы типа driver и contragent contact. Но смущает высокая плотность ячеек с NULL значениями.
И, соответственно, если будет использоваться 2 вариант, то количество записей в таблице individual будет намного больше.
В общем не так давно начал разбираться в проектировании БД, так что пока не всё понимаю. Подскажите пожалуйста, если кто знает какой-вариант лучше.
|