Size: a a a

pgsql – PostgreSQL

2021 March 28

VY

Victor Yegorov in pgsql – PostgreSQL
Serj Marin
Переслано от Serj Marin
Господа, два составных типа сохраняются в массив, чтобы потом "отдаться" в json виде, есть ли более удобный способ получать такой массив в Hall?
от того, что вы дважды написали сообщение, понятнее не стало.
пример запроса, текущий и требуемый вывод покажите, пожалуйста. в текстовом виде...
источник

SM

Serj Marin in pgsql – PostgreSQL
Victor Yegorov
от того, что вы дважды написали сообщение, понятнее не стало.
пример запроса, текущий и требуемый вывод покажите, пожалуйста. в текстовом виде...
ещё не переделал, вот предыдущий код .. суть та же, как лучше всего в базе хранить таким способом данные, объекты ?

CREATE TYPE seat AS ( "id" SMALLINT, "price" NUMERIC ( 4, 2 ), "img" CHARACTER VARYING ( 10 ), "x" SMALLINT, "y" SMALLINT, "rotate" SMALLINT );

INSERT INTO hall ( seats )
VALUES
 (
   array_to_json (
     ARRAY [
     ( 1, 10.00, 'std', 10, 10, 0 ),
     ( 1, 10.00, 'std', 10, 10, 0 )
     ]:: seat []
   )
 );
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Serj Marin
ещё не переделал, вот предыдущий код .. суть та же, как лучше всего в базе хранить таким способом данные, объекты ?

CREATE TYPE seat AS ( "id" SMALLINT, "price" NUMERIC ( 4, 2 ), "img" CHARACTER VARYING ( 10 ), "x" SMALLINT, "y" SMALLINT, "rotate" SMALLINT );

INSERT INTO hall ( seats )
VALUES
 (
   array_to_json (
     ARRAY [
     ( 1, 10.00, 'std', 10, 10, 0 ),
     ( 1, 10.00, 'std', 10, 10, 0 )
     ]:: seat []
   )
 );
а чем вам обычные таблицы не угодили?
источник

SM

Serj Marin in pgsql – PostgreSQL
Victor Yegorov
а чем вам обычные таблицы не угодили?
да я как-то до конца суть БД не улавливаю. Есть вложенные объекты, структура как на картинке. В итоговой таблице они все держатся в массиве, получается БД помнит структуру  данных.
Для этого json вроде как удобно.... в общем запутался
источник

Ð

Ð in pgsql – PostgreSQL
Serj Marin
Переслано от Serj Marin
Господа, два составных типа сохраняются в массив, чтобы потом "отдаться" в json виде, есть ли более удобный способ получать такой массив в Hall?
очень странная форма данных для кинотеатра, я бы неуд влепил )
источник

Ð

Ð in pgsql – PostgreSQL
почитай как делаются связи один ко многим, про внешние ключи
источник

Ð

Ð in pgsql – PostgreSQL
никаких массивов и жсонов там не должно быть
источник

SM

Serj Marin in pgsql – PostgreSQL
структура призвана хранить только статичное состояние, как- бы можем хранить несколько разновидностей hall. Эти данные не меняются, их просто надо помнить в виде структуры
источник

Ð

Ð in pgsql – PostgreSQL
это понятно, только вот ид болка - это свойство сущности стула, а ид холла - это свойство сущности блока. Подумай. Меньшие элементы ссылаются на группы, а не группы содержат элементы. В общем рекомендую любую книгу по рсубд, а потом уже постгрес.
источник

SM

Serj Marin in pgsql – PostgreSQL
Ð
это понятно, только вот ид болка - это свойство сущности стула, а ид холла - это свойство сущности блока. Подумай. Меньшие элементы ссылаются на группы, а не группы содержат элементы. В общем рекомендую любую книгу по рсубд, а потом уже постгрес.
это сектор ... часть зала hall
источник

Ð

Ð in pgsql – PostgreSQL
я знаю
источник

Ð

Ð in pgsql – PostgreSQL
это вот эти ваши балконы, галерки, первые ряды. Это все понятно, типичный курсач.
источник

SM

Serj Marin in pgsql – PostgreSQL
получается структура, в чём-то универсальная, Стадион -> сектор -> места
И всю эту байду надо как-то хранить.
Где-то  это  стдаион, где- то кинозал
источник

Ð

Ð in pgsql – PostgreSQL
получается классическая задача об иерархической группировке
источник

Ð

Ð in pgsql – PostgreSQL
источник

Ð

Ð in pgsql – PostgreSQL
Serj Marin
получается структура, в чём-то универсальная, Стадион -> сектор -> места
И всю эту байду надо как-то хранить.
Где-то  это  стдаион, где- то кинозал
если вкацы, то смысл в том, что не группа должна знать об элементах внутри нее, а элемент должен знать, в какой он группе
источник

SM

Serj Marin in pgsql – PostgreSQL
Ð
если вкацы, то смысл в том, что не группа должна знать об элементах внутри нее, а элемент должен знать, в какой он группе
здесь нет работы с элементом, нужно хранить структуру целиком.
Для каждого hall она будет разной, вот  эти hall уже где-то будут использоваться дальше "один ко многим"

И чтобы сохранить сразу в виде структуры использовал массив
источник

Ð

Ð in pgsql – PostgreSQL
это неправильно, правильно - через внешние ключи
источник
2021 March 29

SM

Serj Marin in pgsql – PostgreSQL
Ð
это неправильно, правильно - через внешние ключи
а что меньше весит комплекты таких таблиц для разных hall или одна таблица держащая список разных hall  ?
Из таблицы мы только один раз читаем, возможно в дальнейшем будем добавлять более сложные hall
источник

Ð

Ð in pgsql – PostgreSQL
Serj Marin
а что меньше весит комплекты таких таблиц для разных hall или одна таблица держащая список разных hall  ?
Из таблицы мы только один раз читаем, возможно в дальнейшем будем добавлять более сложные hall
это все не важно, поверь. Занимать будет примерно одинаково, а вот работать и развивать базу дальше возможно только с нормализованной структурой данных, без всяких массивов и жсонов, это обеспечивает универсальность и гибкость всевозможных запросов и нововведений. Рекомендую любую книгу по рсубд, начиная с 80х годов, там это все описано.
источник