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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам