Лучше иметь отдельные таблицы для статей и комментариев или одну таблицу для обоих? - PullRequest
2 голосов
/ 24 марта 2012

Я работаю над небольшим проектом, где пользователь отправляет статью в MySQL, а затем PHP отправляет сообщение на экран. Все идет нормально. Теперь я хочу расширить его до «двухуровневой» почтовой системы, где люди могут комментировать статьи. Дело в том, что я не знаю, как это сделать.

Таблица, которую я использую для хранения статей:

ТАБЛИЦА: сообщения

id дата пользователя аватар подпись пост

Должен ли я сделать новую строку с именем комментариев в таблице сообщений или я должен разместить комментарии в отдельной таблице? один для статей, один для комментариев?

Вся помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Зависит от того, как вы используете его на своем сайте. Вы должны спросить: «Являются ли мои статьи и комментарии по сути одним и тем же понятием?» Если да, то используйте одну таблицу, если нет - две. На большинстве веб-сайтов статьи работают по-разному, их можно классифицировать, редактировать и т. Д., И, как правило, требуются другие поля, которые могут загромождать таблицу комментариев ... так что в этом случае две таблицы более разумны. Но если вы придете к выводу, что статьи и комментарии на вашем веб-сайте, как правило, одинаковы (но постарайтесь подумать о будущем: не нужно ли вам добавить некоторые функциональные возможности статьи через 2 месяца?), Тогда вы можете рассматривать статьи также как комментарии один стол для них.

Если вы решили объединить вещи в одну таблицу и понимаете, что вам нужен другой столбец, чтобы различать тип сообщения, и что некоторые столбцы остаются неиспользованными для некоторых типов, это сбросить предупреждающий сигнал у вас должно быть две таблицы!

1 голос
/ 24 марта 2012

Это немного субъективно, но я бы просто установил отношения родитель / потомок в вашей таблице постов, сделал бы столбец parent_id, который является внешним ключом для столбца id в той же таблице.для дополнительного кредита вы можете сделать это вложенным множеством , которое позволит вам вытащить родителя и всех потомков в одном запросе

...