我有一個需要升級的舊應用程序。現在不是一切都好嗎?聯繫人的可擴展數據庫模式(社交)
現有的數據庫模式由預定義的字段組成,如電話,傳真,電子郵件。很顯然,隨着過去5 - 7年(或更長時間取決於您所在國家)的社會爆炸式增長,終端用戶需要更多地控制他們認爲合適的方式創建聯繫人卡片,而不僅僅是我認爲可能有用的方式。
我在這裏關注「數字」地址。即一個線路類型地址。電話= ccc ccc ccc ccc等 因爲在這種情況下物理地址在需求方面非常標準,用戶將不得不使用他們給定的位置(郵政地址,郵遞地址),以保持範圍的可管理性。
所以我想知道什麼是存儲數字信息的最佳實踐格式。對我來說,好像我有兩個選擇:
- 一個簡單的4場表(使用ContactID,AddressTypeId,地址,FormatterId)
1000, 「手機」, 「CCC CCC CCC CCC」, phoneformatter
1000, 「臉譜」, 「myfacebook」,facebookformatter
這將隨後在任何地方加入了它的需求。儘管表格會變得龐大,但隨着時間的推移,我認爲加入表現會降低。
- 一個JSON團塊這將需要一次讀取的附加處理(的ContactID,地址)
1000,{{ 「電話」: 「CCC CCC CCC CCC」},{ 「臉譜」: 「myfacebook」}}
或...別的東西。
這個數據庫用於客戶在特定國家的國內交易,客戶羣範圍從3000-12000個賬戶,然後每個賬戶有多個聯繫人 - 當前系統的平均值約爲10。
我主要關心的是用戶的靈活性,但性能是一個關鍵的考慮因素。所以我不知道,只是做任何事情,並在其中扔硬件堆;)
應用程序是在C#中,如果有任何區別重新:後處理查詢。
您正在使用哪些DBMS? Postgres的?甲骨文? –
@a_horse_with_no_name一路Sql Server。 – rism
由於記錄數量很少,而且屬性的靈活性(「地址類型」)很自然,因此自然選擇是某種EAV模型(如第一個片段中的那個) – wildplasser