У меня проблема с архитектурой того, как хранить данные, относящиеся к определенной роли, в реляционной базе данных.
У меня три роли: Subscriber Contact
, Teacher
и Student
.Все они хранятся в таблице Users
, но имеют специфические свойства, связанные с каждым из них.У ученика есть SchoolId
, Grade
, у абонента есть DistrictId
, у учителя - ProgramId
, SchoolId
, Grade
.
Должен ли я иметь три отдельные таблицы для подписчикаконтакт, учитель и ученик, или я должен сделать какой-то поиск ключа / значения?Если поиск ключа / значения, как я могу сделать это и как я могу сделать это для внешнего ключа, как DistrictId
и SchoolId
?