【问题标题】:How to manage dynamic entities on mysql / hibernate / java combination如何管理mysql/hibernate/java组合上的动态实体
【发布时间】:2013-12-12 23:19:47
【问题描述】:

我正在尝试通过一个界面创建一些动态实体,其中有一个可以由最终用户自定义的主实体。这种实体的许多变体可以同时存在于数据库和应用程序上。

我需要在 db 上定义这样的动态实体/在其中存储数据(通过为它们收集数据而定制的表单。并在我们的应用程序中使用这些数据。

ui 部分对我们来说并不令人生畏,我们有一种很好的方式来处理它们。但管理大量单一实体似乎是个问题。

Hibernate 需要一个 pojo。我们目前正在研究使用 hibernate 的基于地图的序列化。

这里的问题是 - 为实体的每个变体创建一个单独的表是一种好习惯吗?还是将实体完全非规范化并将它们作为键/值对存储在具有类型 id 的字符串中然后转换更好?

还有比这些更好的解决方案吗?

如果云数据库更适合场景,我们也在考虑评估它们。任何指针都非常欢迎。

【问题讨论】:

  • 澄清 - 由于实体将通过 ui 定义/自定义,我们不能使用 pojo。我们面临的真正挑战是确定存储实体的最佳方法。

标签: java mysql hibernate


【解决方案1】:

我问这个问题已经有一段时间了,与此同时,我一直在大量试验我的选择。

我尝试的一个选项是使用休眠地图模式,虽然它可以非常灵活地定义和更改实体,但我实际上无法存储特定系列的品种。通过在 MySQL 中创建键值存储并编写了一个库来进行数据转换,我们在存储品种方面取得了一些成功。然而,在 mysql 上有效地查询这些数据看起来令人生畏。我们通过使用我们在 lucene 上的搜索索引作为答案来解决这个问题。

然而,在我的案例中,一个结论是使用 HBase 并进行智能扫描查询。这就是我现在对这个问题的回答,它似乎运作良好。

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2023-04-02
    相关资源
    最近更新 更多