我有一个拥有数百万个实例的实体。每个实例都必须引用一个有序的项目列表。列表必须是唯一的,因此不会多次存储列表。但是一旦创建,列表和实体实例都是不可变的。实体实例将远多于列表,并且数据库必须支持实体的快速插入。
那么,什么是插入高效、健壮、存储不可变、唯一、有序列表的方式?
编辑:列表项是简单的整数,典型长度约为 5 项。一长串的清单,比如 10 或 20 个项目是不太可能的,但可能。
编辑:到目前为止,我已经考虑过这些方法:
1)
lists
表有这些列:<list_id> <order> <item>
所以如果列表 #5 包含[10,20,30]
表将包含的元素:
5 1 10
5 2 20
5 3 30
Run Code Online (Sandbox Code Playgroud)
实体表将有一个item_list_id
引用该lists
表的列(它不是外键,因为list_id
它不是lists
表中的唯一列-这可以通过添加另一个包含所有有效列的表来解决list_ids
)。
2)
lists
表有这些列:<list_id> <item1> <item2> <item3> ... <itemN>
所以如果列表 #5 包含[10,20,30]
表将包含的元素:
5 10 20 …
Run Code Online (Sandbox Code Playgroud)