【发布时间】:2015-09-01 15:33:51
【问题描述】:
我需要将字符串列表与 ID 一起存储为字段:listId, <list>。
现在我需要按 O(1) 时间进行以下操作:-
- 从现有 listId 中删除给定字符串。
- 在现有 listId 中添加新字符串。
有没有可以支持上述操作的数据库?将 HashSet 作为其数据类型之一会有所帮助。请注意,我需要一个高度可扩展的解决方案,其中列表可以在 1000+ listIds 中有 1000 万个键。
我了解,如果任何数据库中都存在此类数据类型,则会产生相当大的索引开销。我相信类似的东西存在的机会非常渺茫。如果没有,那么我会自己实现一些东西。
【问题讨论】:
-
我要求选民解释否决票。
-
我没有投反对票,但也许是因为严格来说,这是一个与 SO 无关的资源请求 - 或者因为将字符串列表作为字段存储在表中通常是真的糟糕的设计,对此的标准解决方案是使用normalization 和一个单独的表来存储要存储在blob 中的内容。根据这个要求选择你的数据库平台似乎没有多大意义——除非你有特定的原因?
-
@Pekka웃 感谢您的帮助。但我无法规范化包含 1000 万个字段的表。这意味着有 1000 万列。但这有意义吗?如果没有,那么这意味着我们不能在任何数据库中进行上述操作?我需要另一个帮助,在 stackexchange 上问这个问题的最佳网站是什么?我想肯定有关系数据库之外的东西。
-
这里有 dba.stackexchange.com 但请先查看他们的常见问题解答,我不知道那里有什么话题,什么不是。我不知道您所说的拥有 1000 万列是什么意思,在 1:n 关系中,您将有两个表,其中一个可能有 1000 万或更多 记录 - 这并不罕见.你所描述的听起来像是一对一关系的教科书案例。
-
@Pekka웃 啊,我明白了。我想我现在可以设计它。我根本不需要任何数据类型。我设计错了。谢谢!您能否将此作为答案发布,以便我接受并关闭该帖子?