小编Mal*_*lex的帖子

如何存储不可变的、唯一的、有序的、列表?

我有一个拥有数百万个实例的实体。每个实例都必须引用一个有序的项目列表。列表必须是唯一的,因此不会多次存储列表。但是一旦创建,列表和实体实例都是不可变的。实体实例远多于列表,并且数据库必须支持实体的快速插入

那么,什么是插入高效、健壮、存储不可变唯一有序列表的方式


编辑:列表项是简单的整数,典型长度约为 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)

schema database-design sql-server

5
推荐指数
1
解决办法
1130
查看次数

标签 统计

database-design ×1

schema ×1

sql-server ×1