Таблица базы данных, если для всех таблиц требуется внешний ключ из пользовательской таблицы без чрезмерной нормализации - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь создать базу данных для системы управления гаражом. И я борюсь с чрезмерной нормализацией. Было бы лучше иметь User_ID в качестве внешнего ключа во всех таблицах для ускорения запросов, или этот дизайн имеет смысл?

Любая помощь приветствуется

Ответы [ 2 ]

1 голос
/ 27 января 2020

Я бы не рекомендовал добавлять user_id в другие таблицы. Это просто похоже на кошмар обслуживания - обеспечение согласованности user_id по всем таблицам.

Вместо этого вы можете позаимствовать метод, связанный с размерным моделированием (который описан в Википедия ). Это сглаживает размеры.

Это означает, что у вас будет одна таблица отдельно от пользователей на самом детальном уровне. Вся информация о пространствах, зонах, полях и элементах будет находиться в одной таблице.

Это работает, если предположить, что значения измерений действительно не меняются со временем - представьте себе измерения времени или географические измерения c.

1 голос
/ 27 января 2020

Что касается ORM, ваш дизайн абсолютно правильный. Избыточность отсутствует, а данные легко достижимы благодаря транзитивности. Тем не менее, иногда разработка требует упрощения и повышения производительности. Производительность должна преобладать над дизайном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...