在我的应用程序中添加自定义字

时间:2016-11-02 15:34:41

标签: java database hibernate spring-mvc

我有一个SAAS产品,它是由Spring MVC和Hibernate构建的。通常,SAAS产品允许用户自定义产品,例如向表中添加额外字段。
所以我想为用户提供灵活性,在表格中为自己创建自定义字段。
请提供所有可行的解决方案。你非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我猜你试图将它支持到Relational数据库。主要问题是关系数据库将事物存储在表中,而表并不能很好地处理自由格式数据。

因此,一种解决方案是使用灵活的文档结构,如XML(可能会丢弃数据库),但数据库具有很好的功能,所以我们也要考虑使用数据库的方法。

您可以创建一个“自定义字段”表,其中包含

列(复合主键)

ExtendedTable    的ColumnName

但您还必须将数据存储在某处

(ExtendedKey)    的DataItem

现在我们陷入了非常讨厌的境地。您如何对此数据应用约束?我的意思是,DataItem的类型是什么?一般的解决方案将非常复杂(作为一种自由形式的数据库)。希望你能限制解决方案,只解决你需要解决的问题。

另一种方法是使用一个包含XML记录的“额外”列,该记录嵌入了自己的“列和值”扩展,但如果要显示有效的表,则必须解析每个每个领域都有XML文档,这是不理想的。

这些方法中的任何一种都不能与现有的SQL查询语言一起使用,因此您将开始构建自己的查询语言。

我建议你回过头来看一下真​​实的数据要求,而不是在桌子底下用“你想要的任何其他东西”列表来扫描它们。

答案 1 :(得分:0)

您的要求最适合NoSQL数据库的用例(如MongoDB)。

动态创建关系数据库表&根据应用程序中的用户请求列(修改模式)不是最佳做法,因为这些操作涉及 DDL 操作,这些操作非常强大,如果您不仔细处理它们,整个应用程序和#39; s数据库进入不一致状态。