gpt4 book ai didi

java - 要以 Web 表单读取的 DB 表中的变量结构

转载 作者:行者123 更新时间:2023-12-01 05:33:33 27 4
gpt4 key购买 nike

我有一个“变量”结构要放入表数据库中。我所说的“变量”是指一系列字段/值对,其中字段的“种类”决定了值类型,我不知道确切的字段顺序,也不知道字段可以重复多少次。有时一组字段会重复多次(这是一个财务模型)。

附加要求:我应该将这些可变数据映射到网页表单中,处理一些CRUD工作。JQuery-ui、Struts 2、Hibernate。首选数据库管理系统:MySQL。

我想到的解决方案:

  1. 垂直表格。我可能会遇到一些性能问题,当我需要大量数据处理时,我可以使用物化 View “旋转”列中的行来解决这个问题。在这个方向上还没有走得太远,因为它的开发成本似乎非常昂贵。
  2. LOB 字段。将我的列打包到其中之一中,也许有一个“映射”表来解码每一列。我的想法是将可搜索字段拉出为“真实”列,以便在 LOB 中仅留下不太有趣的数据群,而不会产生性能问题。
  3. 或更好2a。在 LOB 字段内使用 xml。这对于更轻松地打包/解包数据非常有用,特别是必须将数据映射到 Web 表单。

你觉得怎么样?还有,是否有某种方法可以从 xml 字段创建自动 View ?或者更好地将这些数据映射到网络表单?我怀疑 Hibernate Tools 在我描述的任何情况下都不起作用。

我希望我已经说清楚了,即使对我来说,它仍然有点令人困惑:)

最佳答案

您的选项 1 是 Entity-Attribute-Value反模式。

查看我对 Product table, many kinds of product, each product has many parameters 的回答和我的博客文章EAV FAIL对于替代方案以及 EAV 错误的某些原因,至少对于关系数据库而言(我在我的书中介绍了 EAV,SQL Antipatterns Volume 1: Avoiding the Pitfalls of Database Programming)。

另请阅读这篇文章,了解类似的结构如何几乎注定了一家公司的灭亡:Bad CaRMa .

您的选项 2 和 3 与 How FriendFeed uses MySQL to store schema-less data 中描述的类似。我不知道 ORM 是否有任何自动方式来为您维护该结构。您确实需要保持倒排索引表与 LOB 数据同步。

关于java - 要以 Web 表单读取的 DB 表中的变量结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com