Какой уникальный идентификатор использовать для блогов и комментариев?
Этот вопрос возник из-за последствий другого вопроса: лучше ли иметь две отдельные пользовательские таблицы или одну?
Предполагая, что у меня есть два типа пользователей, Автор и Читатель, каждый из которых хранится в реляционных таблицах, привязанных к основной таблице Учетных записей следующим образом:
TABLE Accounts {
id
email
password
salt
created
modified
}
TABLE reader {
id
user_id
...
}
TABLE author {
id
user_id
...
}
Когда автор публикует блог, я должен пометить блог уникальным идентификатором из таблицы авторов или уникальным идентификатором из таблицы учетных записей? То же самое касается комментариев читателей. Должен ли я пометить комментарий уникальным идентификатором таблицы Reader или уникальным идентификатором таблицы Account?
Итак, в основном либо:
TABLE Blogs {
id
author_id
}
ИЛИ ЖЕ
TABLE Blogs {
id
account_id
}
Который с меньшей вероятностью откусит позже?
2 ответа
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. Если у вас есть поля, зависящие от типа учетной записи, поместите их все в таблицу "Профиль".
Только вы можете ответить полностью, но моя интуиция говорит, что записи в блоге должны быть помечены автором. Единственная причина использовать концептуально аккаунт - если не автор может создать (создать) запись в блоге. Пока, с предоставленной информацией, это не выглядит так.
Обратите внимание, что я также считаю, что все авторы должны быть пользователями: каждый является пользователем, но только некоторые пользователи также имеют статус автора.