@misterobot404

Хранить двумерный массив в json или создавать таблицу?

У в базе должны быть пользователи, у каждого пользователя свой набор карт, у каждой карты свой набор событий и конфиг. Возникает вопрос как лучше хранить события для карты?
У меня есть два варианта :
1) хранение в json
CREATE TABLE maps( 
map_id serial primary key NOT NULL,
user_id integer references users(user_id) NOT NULL,
map_name varchar (30) NOT NULL,
map_description text,
map_events json,
map_config jsonb 
);

2) создание общей таблицы с событиями из которой буду делать выборку по id_карты
CREATE TABLE maps( 
map_id serial primary key NOT NULL, 
user_id integer references users(user_id) NOT NULL,
map_name varchar (30) NOT NULL,
map_description text,
map_config jsonb 
);
/*структура события*/
CREATE TABLE events( 
event_id serial primary key NOT NULL,
map_id integer references maps(map_id) NOT NULL,
event_header varchar (30), 
event_description text, 
event_media_url varchar (100), 
event_location varchar (100)
);

Моё веб приложение работает с событиями к карте следующим образом: получение событий карты (события должны быть расположены в определённой последовательности, поэтому от варианта с jsonb отказался сразу), изменение событий и их порядка, перезапись ВСЕХ событий в базу данных.
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 2
Hivemaster
@Hivemaster
Админ, который хочет программировать
Создавать таблицу.
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
2 таблицы.
Особенно если карт будет достаточно много, то будет неэффективное i/o, особенно у ранних записей
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы