【MySQL之设计表(二)】一个典型的数据库设计问题
2015-05-12 18:13
916 查看
假如我有好多间房屋,每个房屋需要收不同的费用,如管理费、网费、电费、水费...等。但是每间房屋的收费标准和收费项目都不一样。而且,很有可能以后还会增加其它费用。有的要收网费,有的不需要收网费。怎样设计数据库?我有两个方案,第一个方案是把所有的费用都设一个列,并且增加很多个预留字段不足之处:要有很多个列,并且有很多个预留字段,表太长。房屋收费表第二个方案是,用三个表表示关系。不足之处,关系太复制,第三方表(房屋费用表的数据量巨大)房屋费用表具体例子:1(HouseFeeId1) 1(房屋1) 1(管理费)2(HouseFeeId2) 1(房屋1) 2(网费)3(HouseFeeId3) 1(房屋1) 3(水费)4(HouseFeeId4) 1(房屋1) 4(电费)5(HouseFeeId5) 2(房屋2) 1(管理费)6(HouseFeeId6) 2(房屋2) 2(网费)7(HouseFeeId7) 2(房屋2) 3(水费)….第三个方案,用拼接字符串的方法如:1 管理费,网费,水费,电费 150,50,20,30不足之处:不符合数据库的设计原则究竟怎样设计才好?有没有更好的方法?答:
你这个,一般用过数据库的都会选择第二种方式 关系复杂不是问题,主要是那种设计是最合理的,而且关系模式比较容易懂 第一个,看似一目了然,但是将来你添加费用字段会很麻烦 第三个,费用拆分起来也很麻烦 第二个虽然关系复杂,但是你要查的东西都可以用连接的方式将其查询出来 记得学数据库时有三个表吧 学生表,课程表,分数表 关系模式跟你第二个完全类似
那还有没有更好的方法那?
相关文章推荐
- 请各位大虾们帮帮小弟,谢谢!一个关于产品搜索数据库设计思路的问题
- 一个项目报表数据库设计的问题.
- 一个有关访问量统计的数据库设计以及isqlplus的一个设置问题
- 请教大家一个问题,有关于数据库的设计
- mysql备份数据库一个小问题
- 一个问题看系统数据库设计
- 一个SNS数据库表设计的问题
- mysql的编码问题以及购物网站的数据库设计
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- 数据库设计步骤--了解用户需求:拿出一个问题清单
- mysql 的表名和列名设计时应该注意的一个问题
- 数据库设计问题1-之富文本内容存储到mysql后的读取问题
- 一个风控计算负载过高到mysql主从拆分暴露的各种设计复杂性问题以及解决方法总结
- 运维角度浅谈MySQL数据库优化一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方
- 关于使用navicat for mysql在建立数据库连接时出现的2003 can't connect to mysql server on'localhost'(10038)问题
- mysql - 数据库设计
- 【学习摘记】马士兵bbs改良版_课时7&课时9_MySQL编码问题——数据库与客户端编码关系
- navcat连接数据库Mysql使用密码问题
- mysql使用in函数的一个小问题
- 数据库设计中应注意的问题