лучший подход к проектированию базы данных, если таблицы имеют одинаковые столбцы? - PullRequest
0 голосов
/ 26 марта 2019

Мой вопрос просто прост.Я могу объяснить с изображением.Я создам базу данных и эти ВСЕ таблицы тех же столбцов базы данных (IsDeleted, IsActive, CreatedDate, UpdateDate, CreatedUserId и т. Д.) Каков наилучший подход к созданию этой базы данных?Должен ли я описать как первая таблица, что все таблицы имеют одинаковые столбцы или как вторая, что ВСЕ таблицы отношение к базовой таблице?

только образец enter image description here

Ответы [ 3 ]

0 голосов
/ 26 марта 2019

Невозможно увидеть причину, по которой вы выбрали бы второй дизайн, если ваш Выбор и Отражение не содержат Идентификатор пользователя и Имя.

0 голосов
/ 26 марта 2019

Как правило, все поля, принадлежащие User, должны храниться в таблице User, за некоторыми исключениями:

  • необязательный параметр;если есть набор полей, которые применяются только к подмножеству пользователей, у вас может быть таблица «один к одному», отделенная от пользователя, поскольку она не будет полезна для большинства пользователей.Например, если у вас была таблица Employee, которая включала сведения, применимые только к менеджерам, вы могли бы отделить таблицу Manager только с этой информацией, относящейся к менеджеру.

  • удобочитаемостьимея очень много полей, которые являются однозначными с User: если это проблема, вы можете разбить User на несколько таблиц, каждая из которых имеет отношение к одному предмету о пользователе, например, контактная информация пользователя, платежная информация пользователяи т. д.

  • производительность, например, ваша производительность замедлилась, потому что вам нужно постоянно запускать какое-то обновление, которое блокирует всю таблицу User, чтобы получить доступ к одному или двум значениям в этой таблице.В этом случае вы можете разбить User на несколько таблиц, чтобы все это не блокировалось при каждом запуске.

0 голосов
/ 26 марта 2019

Первый подход больше подходит в вашем случае.

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