Мне просто интересно, с точки зрения дизайна, эффективности и пространства, что лучше выбрать? Самостоятельное объединение или использование двух таблиц, а затем их объединение?
У меня есть база данных MySQL, в которой хранятся детали дизайна продукта, designer_type
может быть либо company_staff
, либо определенным customer_type
.
Сначала я думал о 2 таблицах, одна с именем staff_design
, а другая с именем customer_design
.
В любом случае информация design
остается почти такой же, за исключением того, что если это клиент, есть два дополнительных столбца, которые не нужны staff_design, один из которых является внешним ключом к идентификатору staff_design
, а другой — design_name
(что-то вроде которые могут добавлять пользователи, а не персонал). Оба из этих двух столбцов могут быть NULL.
Поэтому, если я спроектирую базу данных таким образом, что эти две таблицы объединены и есть только одна таблица design
, тогда эта таблица будет иметь 3 дополнительных столбца, которые могут быть NULL довольно часто: в ней должно быть design_type
(с указанием customer
или staff
) , а затем два дополнительных столбца, о которых я упоминал выше. (design_name
и staff_design
ФК).
Какой дизайн лучше?
Я склоняюсь к дизайну с одной таблицей в основном для уменьшения обработки жесткого диска (выборка двух разных таблиц, а не одной). Затем мне придется использовать много самостоятельных соединений.
Что считается профессионально лучшим подходом? Ожидается, что сотрудники staff_designers сохранят тысячи дизайнов, в то время как только продвинутые пользователи и клиенты с дополнительной оплатой будут сохранять собственные индивидуальные дизайны. Таким образом, определенно будет гораздо больше дизайнов для сотрудников, чем дизайнов для клиентов.
design
(в случае одной таблицы). - person bpgergo   schedule 02.10.2012