2

我有一张需要按顺序保存一些用户操作的表。我可以通过使用类似于链表的自引用表来保存它,或者根本不使用自引用,而只使用时间戳来保持序列。此表引用了其他表,例如与操作关联的用户和文件。这些操作将需要支持 CRUD。操作频率按以下顺序排列:检索 > 插入 > 更新 > 删除

您的设计偏好是什么,为什么?谢谢!

4

1 回答 1

3

我会避免像瘟疫那样的“链表”。他们唯一擅长的就是检索“下一个”项目。问题是每一个额外的“跳跃”都需要一个连接,所以如果你想对其进行参数化(例如,提供一个检索N给定项目之后的项目的函数),那么你需要(1)机器生成的连接之一(2)多项选择 (3) 不太可能被您的 ORM 移植和/或支持的 SQL。

这与使树在 sql 中臭名昭著的问题相同。它是通过递归连接“修复”的,但就是上面的(3)(也许我是过时的,有人会说这些现在得到了很好的支持——如果是这样,我想我会学习......)。

于 2012-05-23T01:32:41.393 回答