Производительность базы данных: разбить таблицу или сохранить вместе - PullRequest
2 голосов
/ 27 апреля 2020

Для нашего проекта мы хотим сохранить сотрудников и клиентов в одной или двух таблицах базы данных.

У клиентов есть те же столбцы, что и у сотрудников (например, имя, адрес, язык, адрес электронной почты, ...). У сотрудников с другой стороны есть дополнительные столбцы, такие как SocialSecurity Number, bankaccount, ...

Поскольку у этих двух столбцов много похожих столбцов, может быть целесообразно объединить их в одну таблицу «person», учитывая, что время от времени может быть случай, когда клиент получает сотрудника или наоборот.

Но поскольку в приложении эти две «роли» людей строго разделены (у нас есть запросы, в которых мы хотим получить всех клиентов и запрашивает всех сотрудников или ищет человека по электронной почте, где роль является клиентом / сотрудником), тогда было бы целесообразнее разделить их.

Есть большая разница в производительности между этими двумя решениями или есть даже третий и лучший?

1 Ответ

3 голосов
/ 27 апреля 2020

Я бы не принял это решение исходя из производительности. Я бы принял решение, основываясь на соображениях безопасности и правилах доступа.

Почти во всех обстоятельствах, которые я могу придумать, вам понадобятся отдельные таблицы для клиентов и сотрудников. У вас может быть третья таблица, persons, для общих атрибутов, таких как имена и адреса. Тем не менее, между ними так много различий, что я даже не уверен, что это хорошая идея:

  • Клиентами могут быть юридические лица, такие как компании.
  • Клиенты может быть из любой точки мира, но во многих ситуациях разумно предположить, что сотрудники являются местными.
  • Сотрудники имеют иждивенцев.
  • Вы можете хранить такую ​​информацию, как пол, раса и возраст что вы бы не хотели бы отстаивать информацию о клиентах.

Это всего лишь несколько пунктов, которые сразу приходят на ум. Есть много других отличий.

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