Связанные таблицы против json объектов - PullRequest
1 голос
/ 17 апреля 2020

Так что вопрос в том, что лучше использовать связанные таблицы против json объектов в базе данных mysql для связи многих со многими, поэтому, например, у вас есть user таблица, подобная этой

 id
 name
 email

и event таблица:

 id
 name
 description

Вопрос в том, лучше ли добавить дополнительное текстовое поле к таблице user со столбцом text, где хранится объект json, в который вы помещаете event ids в таком виде

user таблица:

id
name
email
json

с объектом json, который выглядит примерно так

{
   {event_id: 1},
   {event_id: 2},
   etc
}

или имеет связанную таблицу с

id
event_id
user_id

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

1 Ответ

1 голос
/ 17 апреля 2020

Ваша связанная таблица содержит всю информацию

SELECT COUNT(*) FROM linked_table GROUP BY event_id WHERE event_id = 10

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

даже при mysql 8 вам нужно много положить больше работы и кода для получения информации.

Редактировать:

кроме того, json немного лучше, чем разделенное запятыми поле Действительно ли плохо хранить список с разделителями в столбце базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...