У меня есть база данных с двумя типами пользователей.Что-то вроде:
User:
name: String
email: String
PowerUser
address: String
paypalAcct: String
, где каждый пользователь - User
, но люди, которые подписались на расширенные услуги и т. Д., Также имеют PowerUser
, прикрепленный к их учетной записи.Я хотел разделить User
и PowerUser
, потому что я думал, что было бы неплохо повторно использовать таблицу User
для людей, которые уже стали PowerUser
s, потому что у них должны быть все обычные вещи User
sиметь.
Правильно ли это сделать, или я должен добавить поля User
в таблицу PowerUser
и просто поработать с этим?
Если это правильнодействительно ли User
должен иметь внешний ключ, который указывает на PowerUser
, или PowerUser
должен иметь внешний ключ, который указывает на User
?Я думаю, это зависит от порядка доступа к этим вещам?В этом случае я почти всегда буду идти от User
и проверять, есть ли соответствующий PowerUser
, а не наоборот.
Если я введу внешний ключ в User
s, тогда большое количество пользователей будет иметь нулевой внешний ключ.Если я добавлю внешний ключ в PowerUsers
, то все они будут заполнены, но для перехода от User
s к PowerUser
s потребуется перебор всей таблицы PowerUser
s.Что предпочтительнее?