1
我正在構建一組定製聲明,其中每個聲明都定義有關用戶的信息,例如年齡,性別,地址等。然後將聲明存儲在數據庫中作爲密鑰/值對。聲明類型可以動態添加,以便可以根據需要擴展用戶信息。在聲明中存儲用戶詳細信息 - 通過用戶搜索
但是,我遇到了一個小小的限制,這就是聲明值是字符串的要求。尤其是,在有大量用戶(> 100.000)的情況下,這是相當明顯的,我想執行一個複雜的搜索查詢,即我正在查找所有年齡大於50歲的用戶。假設BirthDate是另一個聲明作爲字符串存儲在數據庫中,在直接對日期時間類型的列發佈查詢或者爲所有用戶搜索聲明集的兩種情況之間,SQL性能肯定會有損失。
如何處理?
但很明顯,我試圖創建一個通用的UI,您可以在其中定義聲明類型,然後將每個聲明類型添加到特定標識。我也想構建通用的服務,通過使用這些聲明類型來生成令牌。如果我在UserProfiles表中存儲年齡,那麼我無法做到這一點 - 這就是特定的邏輯。我在考慮擴展我的ClaimTypes表來引入ValueType屬性,然後對於每個特定的聲明,我可能在數據庫中有3列,IntValue,DateTimeValue和StringValue。這將允許我發出更快的查詢。 –