MySQL 5.5.57 Запрос предложений дизайна базы данных для таблицы 'user' в базе данных - PullRequest
0 голосов
/ 29 июня 2018

Мне нужно создать таблицу user в базе данных образования, где у пользователя могут быть следующие профили:

1. Admin
2. School Admin
3. Tutor
4. Student
5. Parent
6. School Teacher

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

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

1 Ответ

0 голосов
/ 29 июня 2018

Я предлагаю создать отдельные таблицы для профиля и использовать ключ пользователя к таблице для связи с таблицей профилей (если профили предварительно настроены)

если профили динамические, то вам нужно позаботиться о том, чтобы в вашем приложении был проверен профиль проверки или нет, если нет, то сначала вставьте в таблицу профилей, а затем вставьте в таблицу пользователей. Это может повлиять на производительность INSERT.

чтобы получить всех учителей ученика или всех учеников учителя, вы должны использовать самообъединение

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