gpt4 book ai didi

mysql - 将 id 存储在 MySQL-Link-Table 中

转载 作者:行者123 更新时间:2023-11-29 14:51:12 25 4
gpt4 key购买 nike

我有一个表“link_tabl”,我想在其中通过 id 链接其他三个表。所以每一行都有一个三元组(id_1,id_2,id_3)。我可以为三元组的每个元素创建一个列,一切都会好起来的。

但我想要更多:=)

我需要多尊重一个“维度”。有一个算法可以创建三元组(表之间的链接)。该算法有时会输出不同的链接。

示例:

table_person代表一个人。table_task代表一个任务。table_loc 重新表示一个位置。

所以 ids (p, t, l) 的三元组意味着:某个人在某个位置做了某事。

元组(人员、任务)不会被算法更改。他们是被给予的。该算法为元组 (p,t) 输出位置 l。但有时算法会为这样的元组确定不同的位置。我想将每个元组(作者、任务)的最后 10 个三元组存储在表中。

最好的方法是什么?

我想到了类似的事情: 如果 link_table 中已存储元组 (p,t),则将位置 id 添加到该行的下一个空闲槽(列)中。 如果已经有 10 个值(所有列都已满),则删除第一个值,将每个值从第 i 列移动到第 i-1 列,并将新值存储在最后一列中。 否则添加一个新行。

但我不知道这是否是一个好方法,如果是,如何实现......

自己的部分解决方案我发现我可以制作两列。 Onw 存储作者 id。存储任务 ID 的一个。并通过

...
UNIQUE INDEX (auth_id, task_id)
...

我可以将它们编入索引。所以现在我只需要弄清楚如何优雅地将值从第 i 列移动到 i-1 。 =)

亲切的问候风起云涌

最佳答案

我会将算法的输出存储在行中,并带有日期指示器。仅考虑最后 10 条记录的要求听起来相当随意 - 我不会将其纳入我的列布局中。它还使一些标准关系工具变得多余 - 例如,查询“人员 x 和位置 y 存在多少个位置”无法通过“计数”来回答,而是通过查看哪一列为空来回答。

所以,我推荐这样的东西:

personID      taskID       locationID        dateCreated
1 1 1 1 April 20:20:10
1 1 2 1 April 20:20:11
1 1 3 1 April 20:20:12

可以通过在选择查询中使用“top 10”来强制执行“only 10”要求;如果需要,您甚至可以将其嵌入到 View 中。

关于mysql - 将 id 存储在 MySQL-Link-Table 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com