2013-03-28 2 views
0

У меня есть это веб-приложение, которое я разрабатываю для своего основного проекта, одним из его функций является обмен сообщениями между зарегистрированными пользователями. Создается вся система обмена сообщениями, когда каждый раз при отправке сообщения создается новая запись в цепочках таблиц и создается новая таблица во второй базе данных, имя таблицы создается из идентификатора обоих пользователей и идентификатора беседы. В этой таблице сохраняется весь разговор между двумя ppl.Используйте новую таблицу SQL для каждой «беседы» в db

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

+5

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

+0

Разве это не заставит весь чат работать медленным, чтобы всегда искать прошлые сообщения в одной таблице, полной сообщений? –

+1

«Это хороший подход» Нет. Вы будете благодарить себя в будущем, если будете использовать то, что предлагал @DarylGill ... – ppeterka

ответ

3

Создание новых таблиц по запросу никогда не будет хорошей идеей. Вы можете создать таблицу, которая соединяет user_ids к разговору:

conversations: 
id : 2348 
started_at: 2013-03-28 17:13:00 

user_conversations: 
id  : 538 
conversation_id: 2348 
message : "Hey Jakub, how are you?" 
user_id : 5831 
posted_at : 2013-03-28 17:14:50 

id  : 539 
conversation_id: 2348 
message : "Hey Anyone, I'm fine, how are you?" 
user_id : 95234 
posted_at : 2013-03-28 17:15:30 

т.д.

ID: PK, ключ на user_id

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

+2

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

+0

Обновлено мое сообщение –

+0

, что не является объяснением того, почему вы использовали бы внешний ключ с отношениями ... К OP, referneces: http: // www .functionx.com/sql/Lesson11.htm и http://databases.about.com/cs/administration/g/primarykey.htm - Обе ссылки, которые я нашел полезными в прошлом –

Смежные вопросы