关于一个动态生成表的设计?
有这样一个系统,系统中有权益这样一个概念。权益可以表示优惠券,红包或者定向优惠券等。每一种权益其中所包含的字段都是不同的。那么对于不同的客户我可能会定义一个不同的权益,现在根据我的想法,设计根据客户定义一个配置,然后来动态的创建一张表表示这个类型的权益。请问这种设计是否合理,是否有其他的设计?如果采用采用这种设计,JAVA中有没有根据配置动态创建表的库?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这种结构不确定而又可能大量创建的数据表最好是使用文档型数据库如mongodb,或者使用关系型数据库的json类型字段如postgresql,它们都是支持直接使用json字段进行查询的。
至于不支持json的数据库如mysql,也可以使用json格式的字符串来存放,如果需要使用某些json字段查询,可以抽取出来作为独立字段。如——
以上结构,name为权益名称,owner为所属用户(也可以再设置其他一些通用字段),而data中则是以json格式存放的权益详细数据。
这样一张权益表就可以,无论用户定义何种结构的权益,一律以json存放,你所要做的只是json的解析就可以。
首先,java中可也用代码来创建数据库表。
其次,你这个需求不需要这样设计,数据表一般都是有数据量的,你想根据用户来创建表,那这么多用户需要创建多少表?
我的建议的:用户表;用户权益关系表;权益表1(优惠卷),权益表2(红包)...
创建这三类表就可以了,完全实现你的功能