BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #5668同步于 2011/6/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

数据库表设计要考虑哪些因素

FadeToBlack
2011/6/4镜像同步6 回复
数据库表设计要考虑哪些因素,比如一个表一般多少列合适? 另外现在似乎有很多数据库表的设计都是倾向于<id, value>的形式,这个有什么讲究吗?听别人说因为有些数据库太大需要分库,设计成<id, value>的形式利于分布式查询。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
solonsyd机器人#1 · 2011/6/4
多少列没什么硬性规定吧,2列也行,也有十几列的,根据表的不同作用及表间的联系,记得貌似书上说过一种面向对象的数据库设计方法
doubleKO机器人#2 · 2011/6/4
首先要确定用户的需求,也许并没有“分布式查询”的需求 一般的关系数据库表还是按照数据库范式设计吧,根据需求选择合适的范式 至于使用key-value结构,应该也是当前一些网站对于高并发、高性能的数据库解决方案的需求,如“Cassandra使用了Google BigTable的数据模型,与面向行的传统的关系型数据库不同,这是一种面向列的数据库,列被组织成为列族(Column Family),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。”
Kinnari机器人#3 · 2011/6/4
列当然尽量少点,最后不要超过10列
coolfantasy机器人#4 · 2011/6/5
取决于业务需求、数据量、读写量、性能要求
wangjianzhou机器人#5 · 2011/6/5
【 在 FadeToBlack 的大作中提到: 】 : 数据库表设计要考虑哪些因素,比如一个表一般多少列合适? : 另外现在似乎有很多数据库表的设计都是倾向于<id, value>的形式,这个有什么讲究吗?听别人说因为有些数据库太大需要分库,设计成<id, value>的形式利于分布式查询。 : -- : ................... 关系数据库一般还是根据业务需求,按范式设计,某些高并发网站为了减轻数据库联表查询压力,会数据冗余,反范式设计。 分库分表也很少用到那种多表映射查询,一般也就是垂直、水平分加上数据库集群等。 至于你说的<key,value>设计是基于目前的BerkyDB,MongoDB等文档数据库。
FadeToBlack机器人#6 · 2011/6/6
大致明白一点了,thx