关于数据库表设计的一点疑问

箫竹影Zyh 2017-04-14 10:38:45
有一个针对商品以及它的一些信息的一个需求,大致分为商品品牌,商品类目,商品规格等,现在内部讨论后对表设计产生了两种方案:
其中没有分歧的是商品主表(商品名,ID等),类目表,品牌表,规格表等基本信息表
而有分歧的地方在建立关联关系表时,有两种方案
第一种:
分别对类目,品牌,规格创建对应的商品-类目,商品-品牌,商品-规格关系表,这样的话,如果有新的信息,就要创建一个新的关系表。
第二种:
只创建一张商品-信息关联表,内部用一个type字段来表示,比如B:商品-品牌,C:商品-类目,S:商品-规格,这样,如果有新的信息,只需要新增一个类型就完了,但是这样做的话,这张关联信息表就会很大。
请问各位大牛,哪一种方案会好一些,或者还有更好的方案,谢谢。
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
箫竹影Zyh 2017-04-16
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
“如果有新的信息,就要创建一个新的关系表”这个说法说给设计开发的外行,挺高大上的。实际上内行人更懂得分寸。 为什么不把整个数据库的100来个表都弄成一个数据表呢?那样岂不是更高大上? 此分寸就是,结构设计直观和稳定。用户需求就是稳定在“类目、品牌、规格”上,那就把结构也作为稳定来看到。任何稳定都是相对的,将来可能都会改变,那为什么不把100来个数据表弄成一个“field1、field2.....、feild501、field502....”这样连字段名都不敢取为稳定名字的数据表? 过于不及,都是太技术的表现。太技术的人反而不够技术,因为他不敢重构,他不敢假设当前需要稳定地设计。
了解了,谢谢,一并结了
  • 打赏
  • 举报
回复
“如果有新的信息,就要创建一个新的关系表”这个说法说给设计开发的外行,挺高大上的。实际上内行人更懂得分寸。 为什么不把整个数据库的100来个表都弄成一个数据表呢?那样岂不是更高大上? 此分寸就是,结构设计直观和稳定。用户需求就是稳定在“类目、品牌、规格”上,那就把结构也作为稳定来看到。任何稳定都是相对的,将来可能都会改变,那为什么不把100来个数据表弄成一个“field1、field2.....、feild501、field502....”这样连字段名都不敢取为稳定名字的数据表? 过于不及,都是太技术的表现。太技术的人反而不够技术,因为他不敢重构,他不敢假设当前需要稳定地设计。
  • 打赏
  • 举报
回复
什么叫做“如果有新的信息,就要创建一个新的关系表”?你们不是总共就3个表嘛。如果增加,那么增加第4个清清楚楚的表。难道你们会像是玩游戏一样迅速增加几十个表? 这个跟“这张关联信息表就会很大”并没有什么关系。而是这样把原本的数据表字段的“两个字段的主键设计”变成了“三个字段的主键设计”,不直观,其实没必要。

系统设计
1 jive设计思路
2 jive的工作内幕
3 Jive源代码研究
4 Jive中的设计模式
5 jive学习笔记



设计模式
1 大道至简-Java之23种模式一点就通
2 设计模式宝典




数据库设计
1 Jive Forums数据库说明(英文)
2 Jive KB数据库说明(英文)
3 Jive Forums KB数据库说明(中文)
4 Jive Forums KB合并数据库脚本(MSSQL)
5 Jive Forums KB合并数据库脚本(Oracle)
6 Jive Forums KB合并数据库脚本(MySql)
7 使用XML封装数据库操作语句的实现
8 Database Package下面的暗黑世界
9 Jive树形结构视图(Treewalker)
10 有时候threadID并不是连续的
11 jsp连接数据库大全
12 OOD需要数据库设计吗?
13 JDBC性能优化技巧



权限设计
1 权限系统概要
2 关于权限设计方面的问题
3 关于用户角色权限管理一点想法
4 关于权限系统的设计



缓存系统
1 剖析Jive的缓存机制
2 jcs学习笔记
3 关于Hibernate的Cache问题
4 用缓冲技术提高JSP应用的性能和稳定性
5 SwarmCache入门



源代码研究
1 Jive中的全局配置
2 Jive源代码情景分析-index.jsp
3 Jive源代码情景分析-forum.jsp
4 Jive源代码情景分析-过滤器篇
5 jive每日一步-web.xml
6 全面了解Jive中的ID机制
7 tree树形数据结构



扩展功能
1 为jive3.x写ColorFilter
2 Jive中的分页处理
3 Jive中Jdom使用剖析
4 丰富的图释
5 使用正则达式让你的jive显示图片
6 Jive3增加帖子的点击功能的高效方法



国际化支持
1 jive_forums_i18n_zh_CN_ori.properties
2 jive_forums_i18n_zh_CN.properties
3 资源汉化方法
4 Jive的中文问题及解决办法
5 Java程序的国际化和本地化介绍
6 Java的i18n问题
7 Java国际化——资源包的使用
8 国际化
9 Supported Encodings
10 native2ascii - Native-to-ASCII Converter
11 Jive 3.x UTF-8中文附件问题
12 JF3.1.3 JKB1.0.2 中文化
13 Jive3.0.8 MYSQL的中文解决方案
14 jive_kb_i18n_zh_CN_ori.properties



全文搜索
1 使您的Jive搜索支持中文
2 关于Jive2中的中文搜索
3 基于JAVA的全文索引引擎Lucene简介



安全认证
1 Jive2.1.1 License保护原理分析
2 用Java的加密机制来保护你的数据
3 在java中编程实现数字签名系统
4 关于Jive1中的验证和相关类的调用

5 MD5的加密算法(JavaScript)



产品介绍
1 Jive简介

Jive Forums
1 Jive Forums特性
2 Jive Forums Changelog

Jive KB
1 Jive Knowledge Base特性
2 Jive Knowledge Base Changelog



系统缺陷
1 Jive的硬伤
2 查询的Bug



安装配置
1 Jive Forum KB的license
2 MakeWAR.jar文件中的MakeWAR.class源代码MakeWAR.java
3 为Jive写的补丁程序patcher.jar的源程序
4 WebLogic中文问题配置文件
5 JSP系统信息配置探针



反编译与混淆
1 編譯、反編譯、反反編譯

反编译
1 反编译常用工具

混淆
1 Sun公司的混淆器JADE
2 RetroGuard的使用方法

JVM
1 JVM之class文件结构
2 JVM 內的資料處理



MVC Framework
1 应用Struts的网站建设



Java基础
1 20个Java基础Tips
2 abstract,static,final修饰符
3 ChinaUnix.net Java精华贴
4 ANT学习笔记
5 极度性能调整


FAQs
1 关于ConnectionManager中的代码
2 关于FORUMFactory的几个疑问
3 研究哪个版本的jive最合适

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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