Это вопрос, который возник из-за последствий другого вопроса здесь: Лучше ли иметь две отдельные пользовательские таблицы или одну?
Предполагая, что у меня есть два типа пользователей: автор и читатель, каждый из которых хранится в реляционных таблицах, привязанных к основной таблице учетных записей, например:
TABLE Accounts {
id
email
password
salt
created
modified
}
TABLE reader {
id
user_id
...
}
TABLE author {
id
user_id
...
}
Когда автор публикует блог, должен ли я пометить блог уникальным идентификатором из таблицы авторов или уникальным идентификатором из таблицы учетных записей? То же самое происходит с комментариями читателей - следует ли пометить комментарий уникальным идентификатором таблицы Reader или уникальным идентификатором таблицы счетов?
Итак, в основном либо:
TABLE Blogs {
id
author_id
}
ИЛИ
TABLE Blogs {
id
account_id
}
Что менее вероятно укусить позже?
TABLE user {
id
email
password
salt
created
modified
}
TABLE profile {
user_id
age
favorite_movie
... other useless stuff...
}
TABLE user_role {
user_id
role_id
}
TABLE role {
id
name (author, admin, user, subscriber, etc...)
}
TABLE blog {
id
user_id
title
text
...etc...
}
user HASMANY role
user HASONE profile
user HASONE blog
Таким образом, пользователь может быть администратором и автором. Вы можете найти их блоги, глядя для соответствующего блога для этого user_id. Если у вас есть поля, зависящие от типа учетной записи затем поместите их все в таблицу "Профиль".
Только вы можете полностью ответить, но моя кишка говорит, что записи в блоге должны быть помечены автором. Единственная причина для использования учетной записи концептуально была бы, если бы не автор мог создать (автора) сообщение в блоге. Пока что с предоставленной информацией это не выглядит так.
Заметьте, что я также считаю, что все авторы должны быть пользователями: каждый пользователь, но только некоторые пользователи также имеют статус авторства.
Reader
илиAuthor
имеет отдельныйid
?