«Опровержения» и «Комментарии» - две БД-таблицы или одна? - PullRequest
0 голосов
/ 28 июня 2009

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

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

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

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

Ответы [ 3 ]

1 голос
/ 28 июня 2009

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

1 голос
/ 28 июня 2009

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

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

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

0 голосов
/ 28 июня 2009

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

...