MySQL 5.5.57 Запрос предложений по дизайну базы данных для таблицы 'user' в базе данных

0

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

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

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

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

Теги:
database
database-design

1 ответ

0
Лучший ответ

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

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

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

  • 0
    Профили предварительно определены. Только некоторые из профилей имеют специфичные для профиля столбцы, поэтому можно ли выполнять сегрегацию только для профилей, которые содержат другой набор столбцов? В основном, отдельные таблицы для некоторых профилей и остальные в одной пользовательской таблице
  • 0
    Это не будет стабильным. В этом случае лучше включить в саму таблицу пользователей. Если профиль имеет другой атрибут, то, конечно, вы должны разделить профиль и использовать ключ в пользовательской таблице.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню