Какой уникальный идентификатор использовать для блогов и комментариев? - PullRequest
0 голосов
/ 24 сентября 2011

Это вопрос, который возник из-за последствий другого вопроса здесь: Лучше иметь две отдельные пользовательские таблицы или одну?

Предполагая, что у меня есть два типа пользователей, Автор и Читатель, каждый из которых хранится в реляционных таблицах, привязанных к основной таблице Счетов следующим образом:

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
}

OR

TABLE Blogs {
    id
    account_id
}

Что с меньшей вероятностью откусит позже?

Ответы [ 2 ]

3 голосов
/ 24 сентября 2011
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. Если у вас есть поля, зависящие от типа учетной записи затем поместите их все в таблицу "profile".

1 голос
/ 24 сентября 2011

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

Обратите внимание, что я также считаю, что все авторы должны быть пользователями: все являются пользователями, но только некоторые пользователи также имеют статус авторства.

...