Это может быть глупо, но базы данных не мое дело. Представьте себе следующий сценарий. Пользователь может создать сообщение, а другие пользователи могут ответить на его сообщение, создав тем самым цепочку. Все идет в одной таблице, называемой сообщениями. Все сообщения, которые формируют поток, связаны друг с другом через сгенерированный ключ с именем ThreadID. Это означает, что когда пользователь # 1 создает новое сообщение, генерируется ThreadID, и каждый последующий ответ имеет ThreadID, указывающий на исходное сообщение (созданное пользователем # 1). То, что я пытаюсь сделать, это ограничить количество ответов, скажем, 20 на поток. Мне интересно, какой из подходов ниже:
1
Я добавляю новый столбец целых чисел (например, счетчик) к сообщениям. После того, как пользователь отвечает на исходное сообщение, я обновляю поле Счетчик исходного сообщения. Если он достигает 20, я блокирую нить.
2
После того, как пользователь отвечает на исходное сообщение, я выбираю все сообщения с одинаковым идентификатором темы. Если в этой коллекции более 20 предметов, я блокирую эту тему.
Для получения дополнительной информации: я использую базу данных SQL Server и модель сущностей Linq-to-SQL.
Буду рад, если вы выскажете свое мнение о двух подходах или поделитесь другим, более быстрым подходом.
С наилучшими пожеланиями,
Кирил