BIGINT[][]). Причём все BIGINT это FK в БД. Сама последовательность кортежа не важна, но порядок значений внутри массивов важен. В первом массиве элементы уникальные, во втором могут повторяться (если быть точным, то одинаковые лежат рядом (и по гор. и по вер.) и образуют прямоугольники, которые складываются в один большой). Никак не могу продумать структуру таблиц, которая позволит мне и сохранить позиции, и сами значения. Пытаюсь избежать JSONB и сделать использование FK. Пока что имею это:
CREATE TABLE array1 (
id BIGINT NOT NULL,
channel BIGINT NOT NULL,
original TIMESTAMP NOT NULL,
position SMALLINT NOT NULL,
enabled BOOLEAN NOT NULL DEFAULT TRUE,
PRIMARY KEY (channel, original, position),
FOREIGN KEY (id) REFERENCES files (id),
FOREIGN KEY (channel, original) REFERENCES messages (channel, posted)
)
CREATE TABLE array2 (
id BIGINT NOT NULL,
channel BIGINT NOT NULL,
original TIMESTAMP NOT NULL,
x SMALLINT[2] NOT NULL, -- Начало и конец по горизонтали слева направо
y SMALLINT[2] NOT NULL, -- Начало и конец по вертикали сверху вниз
enabled BOOLEAN NOT NULL DEFAULT TRUE,
PRIMARY KEY (channel, original, x, y),
FOREIGN KEY (id) REFERENCES files (id),
FOREIGN KEY (channel, original) REFERENCES messages (channel, posted)
)
Как я буду преобразовывать таблицу в матрицу, пока что предпочитаю не задумываться. Но есть ли способ как-нибудь улучшить что ли? (Ответ "не использовать PSQL" уже был.)
Переведите на русский
Я пытаюсь сделать упорядоченные прикрепления в виде матрицы. И никак не могу придумать в каком формате их хранить. Каждая картинка может быть прикреплена только 1 раз к 1 сообщению. И при этом сами картинки должны лежать в виде прямоугольника из прямоугольников.
не храните картинки в базе, ссылку про на файлообменник
На S3. В базе я только их упорядоченность и к какому сообщению прикреплены храню.
вы же переводчиком пользуетесь, или не прав ?
С летнего времени на зимнее, или с питона на SQL?
с прямоугольника на картинки
Обсуждают сегодня