“Опровержения” и “Комментарии” - Две DB-таблицы или одна?

StackOverflow https://stackoverflow.com/questions/1054034

Вопрос

Я работаю над проектом для друга и столкнулся с трудным решением.Проект состоит из эссе, каждое из которых может быть оспорено, а также прокомментировано.Дело в том, что только один человек может оспорить эссе, и тогда все остальные будут заблокированы и смогут только комментировать.

Опровержения могут содержать только два ответа, 2000 слов для первого и 500 слов для второго.На этом этапе больше никаких опровержений - остальная часть обсуждения происходит в комментариях (фиксированная длина n символов, в отличие от опровержений), если зрители считают, что тема не была исчерпана.

Поэтому я изначально решил, что опровержения и комментарии структурно одно и то же, и я бы просто добавил логическое поле в свою таблицу комментариев, чтобы указать, является ли комментарий_rebuttal .Но я чувствую себя немного неуверенно в этом направлении.

Что бы коллектив-вы предложили?Каждое эссе может обсуждаться только двумя людьми, и оба могут выступить только по 2 раза.Очень похоже на комментарии, но отдельно.

Это было полезно?

Решение

Таким образом, у меня, вероятно, была бы таблица для "бесед" с полями для идентификатора пользователя на постере эссе, единственного респондента (изначально нулевого) и, вероятно, названия или аннотации.Другая таблица будет содержать "эссе" с полями для идентификатора пользователя эссе или опровержения, идентификатора беседы, тела сообщения и количества сообщений, чтобы привести их в порядок.Наконец, у меня была бы таблица "комментарии" с идентификаторами пользователей постеров комментариев, идентификаторами essayID для привязки их к публикациям эссе, идентификаторами commentId для перевода их в режим потока (если это уместно) и, конечно, телом комментария.

Другие советы

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

Мой девиз всегда таков:Если вы сомневаетесь, используйте самый простой метод.Который здесь явно представляет собой единую таблицу.

Если позже окажется, что отдельные таблицы более полезны, вы всегда можете провести рефакторинг.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top