У меня есть таблица "link_tabl", в которой я хочу связать три другие таблицы по id. Таким образом, в каждой строке у меня есть триплеты (id_1, id_2, id_3). Я мог бы создать для каждого элемента триплета столбец, и все было бы хорошо.
Но я хочу больше: =)
Мне нужно уважать еще одно «измерение». Есть Algorthm, который создает триплеты (связи между таблицами). Алгоритм иногда выводит разные ссылки.
Пример:
table_person представляет человека.
table_task представляет задачу.
table_loc представляет местоположение.
Таким образом, триплет идентификаторов (p, t, l) означает: определенный человек что-то сделал в каком-то месте.
Кортеж (персона, задача) не изменяется алгоритмом. Они даны. Алгоритм выводит для кортежа (p, t) местоположение l. Но иногда алгоритм определяет различные местоположения для такого кортежа. Я хочу хранить в таблице последние 10 триплетов для каждого кортежа (автор, задача).
Каков наилучший подход для этого?
Я подумал о чем-то вроде:
ЕСЛИ есть кортеж (p, t), УЖЕ сохраненный в link_table, ДОБАВЬТЕ идентификатор местоположения в следующий свободный слот (столбец) строки.
Если уже есть 10 значений (все столбцы заполнены), удалите первое, переместите каждое значение из столбца i в столбец i-1 и сохраните новое значение в последнем столбце.
В противном случае добавьте новую строку.
Но я не знаю, хороший ли это подход, и если да, то как это реализовать ...
Собственное частичное решение
Я понял, что могу сделать две колонки. Onw, в котором хранится идентификатор автора. Тот, который хранит идентификатор задачи. И к
...
UNIQUE INDEX (auth_id, task_id)
...
Я мог бы их проиндексировать. Так что теперь я просто должен выяснить, как элегантно переместить значения из столбца i в i-1. =) * * Один тысяча двадцать-шесть
С уважением
Aufwind