我有一个表“link_tabl”,我想在其中通过 id 链接其他三个表。所以在每一行我都有一个三胞胎(id_1,id_2,id_3)。我可以为三元组的每个元素创建一列,一切都会好起来的。
但我想要更多:=)
我需要再尊重一个“维度”。有一种算法可以创建三元组(表之间的链接)。该算法有时会输出不同的链接。
例子:
table_person 代表一个人。table_task 代表一个任务。table_loc 代表一个位置。
所以三个 ids (p, t, l) 意味着:某个人在某个位置做了某事。
元组(人,任务)不会被算法改变。他们被给予。该算法为元组 (p,t) 输出位置 l。但有时算法会为这样的元组确定不同的位置。我想将每个元组(作者,任务)的最后 10 个三元组存储在一个表中。
最好的方法是什么?
我想到了类似的东西:如果有一个元组(p,t)已经存储在link_table中,则将位置的ID添加到该行的下一个空闲槽(列)中。如果已经有 10 个值(所有列都已满)删除第一个值,将每个值从第 i 列移动到第 i-1 列,并将新值存储在最后一列中。ELSE 添加一个新行。
但我不知道这是否是一个好方法,如果是,如何实现......
我想出了自己的部分解决方案,我可以制作两列。Onw 存储作者 ID。一个存储任务ID。并且通过
...
UNIQUE INDEX (auth_id, task_id)
...
我可以索引它们。所以现在我只需要弄清楚如何优雅地将值从 i 列移动到 i-1 。=)
亲切的问候