Как избежать хранения массива пользователей в одном поле? У меня есть сеансовая таблица, в которой есть поле с идентификаторами пользователей, которое присоединяется к сеансу (joinusers_id). Как мне подходить по их вставке? Самый простой способ — поставить их через запятую, но, думаю, это не самый эффективный способ. Прикреплен скриншот моей текущей реализации таблицы сессий:
Хорошо, мы говорим о базах данных и нормализации.
http://en.wikipedia.org/wiki/Database_normalization
Нет, пожалуйста, не используйте неатомарные поля, это плохо, и вы столкнетесь с проблемами, если захотите присоединиться к таким неатомарным полям.
Я хотел бы предложить, что вы делаете это:
У вас есть пользователи, поэтому, пожалуйста, создайте пользователь таблица, содержащая все вещи, принадлежащие пользователю.
Таблице пользователя нужен первичный ключ: user_mailaddress
У вас есть сессии, создать сессия таблица … первичный ключ: идентификатор сессии
Теперь создайте таблицу user_session, эта таблица имеет два атрибута (столбцы) user_mailaddress а также идентификатор сессии используя эту таблицу, вы можете соединить две таблицы вместе.
SELECT *
FROM user
NATURAL_JOIN user_session
NATURAL_JOIN session
Естественное объединение объединит таблицы, где атрибуты и их содержимое сопоставимы.
ПРИМЕЧАНИЕ: таблицы пользователь а также сессия называются сущностями. Стол user_session называется отношение. Так что это называется модель сущности-отношения. => http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
Чтобы прочитать это более подробно:
https://www.stat.auckland.ac.nz/~paul/ItDT/HTML/node42.html
Других решений пока нет …