簡體   English   中英

DB表中的可變結構以Web形式讀取

[英]Variable structure in a DB table to be read in a Web form

我有一個“變量”結構要放在表數據庫中。 “變量”是指一系列字段/值對,其中字段的“種類”確定值的類型,我不知道確切的字段順序,也不知道字段可以重復多少次。 有時,一組字段會重復幾次(這是一種財務模型)。

附加要求:我應該將這些變量數據映射到網頁表單中,以處理一些CRUD工作。 JQuery-ui,Struts 2,休眠 首選的DBMS:MySQL。

我想到的解決方案:

  1. 垂直表。 我可能會遇到一些性能問題,可以使用物化視圖解決該問題,這些視圖可以在需要大量數據處理時“旋轉”列中的行。 在這個方向上並沒有走太遠,因為開發似乎很昂貴。
  2. LOB字段。 將我的列打包為其中的一個,也許有一個“映射”表來解碼每個列。 我的想法是將可搜索字段提取為“實際”列,以便僅將不太有趣的數據留在LOB中,而不會產生性能問題。
  3. 或更好的2a。 在LOB字段內使用xml。 這對於更舒適地打包/解壓縮數據很有用,特別是必須將數據映射到Web表單時。

你怎么看? 還有更多的方法可以從xml字段創建自動視圖嗎? 還是更好地將此類數據映射到Web表單? 我懷疑Hibernate Tools在我描述的任何情況下都無法使用。

我希望我已經很清楚了,甚至對我來說還是有點困惑:)

您的選項1是Entity-Attribute-Value反模式。

請參閱我對產品表,多種產品的回答,每種產品都有許多參數,以及有關替代品和EAV錯誤的某些原因的博客文章EAV FAIL ,至少對於關系數據庫而言(我在本書的SQL Antipatterns中介紹了EAV :避免數據庫編程的陷阱( )。

還請閱讀本文,了解類似的結構如何幾乎注定了一家公司: Bad CaRMa

您的選項2和3與FriendFeed如何使用MySQL存儲無架構數據中的描述類似。 我不知道ORM為您維護該結構的任何自動方式。 您確實需要使倒排索引表與LOB數據保持同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM