2013-11-29 3 views
0

Это то, о чем я давно задумывался. И поскольку я создаю программу, в которой мне нужно это сделать, я хочу спросить вас, ребята, что вы делаете, когда вы «нажмете» на следующий случай:Таблицы базы данных с неизвестным количеством столбцов

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

Теперь вы хотите сохранить разговоры между неизвестным количеством людей.

Теперь, что вы можете сделать, это таблица message, а затем для каждого из users, которые участвуют в разговоре, вы добавляете строку.

Теперь, если у вас есть что-нибудь другое, чем небольшая программа размера эта таблица сообщения будет быстро расширяться до очень большого размера

Так что я думаю, мой вопрос, что же делать в этом случае?

+0

Почему вы спрашиваете о «неизвестном количестве столбцов»? – Gadoma

+0

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

+0

@EvanTrimboli Вопрос был трудно объяснить, но речь идет о том, что неизвестное количество пользователей отправляет много сообщений в частном порядке друг другу. как вы храните это сообщение, чтобы вы могли просмотреть сообщение и увидеть всех пользователей, которые «могли читать», что индивидуальное сообщение означает, какой пользователь был вовлечен? –

ответ

3

Для создания мульти сообщений получателей вы можете создать таблицу сообщений, которая имеет:

  • идентификатор
  • отправитель -> users.id
  • текст
  • время

и table_recipients, которая имеет:

  • сообщение -> messages.id
  • получателя -> users.id
  • is_read

Это все равно будет иметь тот же (большое) количество строк, но те будут в таблице message_recipients, который всего несколько байт в строке.

+0

Точно, что я искал спасибо! –

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