一个设计问题,请各位大佬不吝赐教

tandy 2019-05-14 12:24:42
有这样一张表格,表格里包含了一些填写选项和一些单选、多选,需要将这个表格信息进行保存,该如何设计呢?
----------------------------------------------------------------------

-----------------------------------------------------------------------
*************************************************************************************************
第一种设计方式:
首先我想到了将表格中的所有单选和多选项设计为数据字典(但是内容很多 相对数据字典也就很多)
例如
性别字典
表名:gender
字段:ID(主键)、 NAME(性别名称)、 CODE(助记码)

例如
颜色字典
表名:colour
字段:ID(主键)、 NAME(颜色名称)、 CODE(助记码)

然后设计了一张表 存储一些填写字段信息和单选类型字典的外键

例如
信息表
表名:info
字段:ID、NAME(姓名)、gender_id(性别字典ID)、......

对于多选的使用了中间表
例如
表明:info_colour
字段:info_id(信息表主键)、colour_id(颜色字典主键)

通过关联查询获取对应的信息表内容

*************************************************************************************************
第二种设计方式:
不设计任何字典,直接在页面定义所有的单选、多选内容,存储时也是在信息表中存储对应单选、多选的内容

*************************************************************************************************
那么问题来了? 两种设计方式该怎么选?
第一种设计代码量大,且查询关联表较多、但是后期维护灵活,能使数据标准化且内容统一
第二种相对第一种代码量极少,且查询不需要关联任何表,但存在数据安全的问题,用户完全可以将自定义的内容保存到后台,且在查询时只能通过某个字段包含某个数值进行查询,查询结果可能不精准

*************************************************************************************************
各位大神有什么更好的设计方式? 不吝赐教~~~~~~~~~~~~
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tandy 2019-05-16
  • 打赏
  • 举报
回复
tandy 2019-05-14
  • 打赏
  • 举报
回复
引用 3 楼 maradona1984 的回复:
第一种想法挺好的,但不够灵活,比如性别字典, 颜色字典这东西都应该合到一张表里,加一个字段了事,这样你在系统中不需要修改存储相关的代码就能扩展类型,按照我的理解,这些选项类型也是很有可能需要扩展的,比如加一个工作类型 所以表单其实也是个字典表 比如姓名是一条数据库记录,而不是一条记录里的一个字段,这样新增类型只需要新增记录数,而不需要新增字段名 如果能再做一个表配置表单中各个字段的位置,那就是真正的完全可配置了(但限制比较死了)
领教 领教
maradona1984 2019-05-14
  • 打赏
  • 举报
回复
第一种想法挺好的,但不够灵活,比如性别字典, 颜色字典这东西都应该合到一张表里,加一个字段了事,这样你在系统中不需要修改存储相关的代码就能扩展类型,按照我的理解,这些选项类型也是很有可能需要扩展的,比如加一个工作类型
所以表单其实也是个字典表
比如姓名是一条数据库记录,而不是一条记录里的一个字段,这样新增类型只需要新增记录数,而不需要新增字段名
如果能再做一个表配置表单中各个字段的位置,那就是真正的完全可配置了(但限制比较死了)
tandy 2019-05-14
  • 打赏
  • 举报
回复
引用 1 楼 931828653 的回复:
为啥要设计字典表, 直接存 数字 ,把代表的意思 备注下就行 例如 1-男 0-女
选项较少的单选使用你说的方法没问题,这里只是举例说明,后边还有很多选项很多的单选,设计成字典比较好维护吧
931828653 2019-05-14
  • 打赏
  • 举报
回复
为啥要设计字典表, 直接存 数字 ,把代表的意思 备注下就行 例如 1-男 0-女

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧