Альтернатива хранению массива в одном поле базы данных Mysql

Как избежать хранения массива пользователей в одном поле? У меня есть сеансовая таблица, в которой есть поле с идентификаторами пользователей, которое присоединяется к сеансу (joinusers_id). Как мне подходить по их вставке? Самый простой способ — поставить их через запятую, но, думаю, это не самый эффективный способ. Прикреплен скриншот моей текущей реализации таблицы сессий:
Что сейчас в таблице

0

Решение

Хорошо, мы говорим о базах данных и нормализации.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]