Хранить темы форума ответы - PullRequest
0 голосов
/ 23 июня 2009

Я создаю форум.

Я собираюсь сохранить идентификатор, тему, дату, постер в таблице с именами тем и сохранить содержимое в таблице с именем сообщений. Теперь мне просто нужно хорошо их объединить.

А как мне сделать, чтобы связать пост с темой?

Что вы думаете об этом подходе?

Ответы [ 3 ]

2 голосов
/ 23 июня 2009

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

2 голосов
/ 23 июня 2009

Вы связываете их, сохраняя TopicID с каждой записью Post. Как сказал Алан, спи на этой мысли.

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

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

Вы можете связать две таблицы ('posts' и ту, в которой действительно есть записи [предположим, 'posttext'], где запись хранится в поле 'postcontent') через запрос: ВЫБРАТЬ posts.subject, posts.date, posts.poster, posttext.postcontent ОТ сообщений, посттекст ГДЕ posts.id = posttext.id;

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

Однако я бы предложил поместить даже постконтент в таблицу «posts», тем самым сэкономив два усилия:

  1. Хранение идентификатора в обеих таблицах будет потеряно -> это означает, что два запроса, по одному для каждой таблицы, теперь уменьшены до одного запроса (как при доступе, так и при записи), поэтому время сервера сэкономлено.
  2. размер базы данных будет слегка уменьшен, поскольку будет использоваться только один индекс. поскольку есть только одна таблица, а не две.
...