2015-09-01 39 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) 
相關問題