2015-09-01 34 views
-2

我需要存储一个字符串列表作为字段以及Id:listId, <list>。 现在我需要以下操作以O(1)时间: -有没有可以支持下列操作的数据库服务器?

  1. 删除给定的字符串从现有listId。
  2. 在现有的listId中添加新的字符串

有没有可以支持上述操作的DB?将HashSet作为其数据类型之一会有所帮助。请注意,我需要一个高度可扩展的解决方案,其中列表可以包含1000个以上的listIds中的10Mn个键。

据我所知,这样的数据类型如果存在于任何数据库中都会产生相当大的索引开销。我相信对于类似的东西来说,机会真的很渺茫。如果不是,那么我会自己实现一些东西。

+0

我要求选民解释downvote。 –

+1

我没有downvote,但也许这是因为严格来说,这是一个关于SO的主题的资源请求 - 或者因为将字符串列表存储为表中的字段通常是非常糟糕的设计,并且标准解决方案这是使用[规范化](https://en.wikipedia.org/wiki/Database_normalization)和一个单独的表,你想存储在blob中的东西。根据这个要求选择你的数据库平台似乎没什么意义 - 除非你有特定的原因? –

+0

@皮卡웃感谢您的帮助。但我不能用10Mn字段标准化表格。这意味着有10Mn列。但是这有道理吗?如果没有,那么这意味着我们不能在任何数据库中进行上述操作? 我需要另一个帮助,请问这个问题,stackexchange上最好的网站是什么?我想在关系数据库之外必须有一些东西。 –

回答

2

您所描述的内容听起来像是normalization的教科书案例。

你会有两个表:一个包含列表,另一个包含列表元素。

它们在列表ID链接:

清单表:

id  name  (+ whatever else you need) 

列表元素表:

id  listId (connected to an id in the lists table) (+ whatever else you need) 
相关问题