У в базе должны быть пользователи, у каждого пользователя свой набор карт, у каждой карты свой набор событий и конфиг. Возникает вопрос как лучше хранить события для карты?
У меня есть два варианта :
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 отказался сразу), изменение событий и их порядка, перезапись ВСЕХ событий в базу данных.