繁体   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