用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3417|回复: 4
收起左侧

各位大大,关于数据库设计的一个构想!

[复制链接]
发表于 2011-8-26 11:35:33 | 显示全部楼层 |阅读模式
我在看了很多人对当有100个字段的时候都在苦恼是分表还是不分,其实我想可以好像key-value那种形式去保存数据吗?
就是说当我有100个字段,但是我搜索的时间仅仅只是需要其中一个字段的话,我就把那个字段单独成为一列,然后其他的数据以JSON或者XML的形式保存到一个json_value字段里面...

譬如:
我现在有一个学生表,我只需要通过年级去检索而已.那么可以这样设计吗?

id class json_value 这样...即使信息是1000个字段,但我数据库也仅仅只是3个字段...不知道这样好还是不好..发表下意见吧各位大大!
发表于 2011-8-26 14:36:29 | 显示全部楼层
一个数据库表中到底有多少个字段是适合的,这个没有定论。这个主要是看设计,而不用局限在字段的数量上。
再有,有些字段完全可以合并到一个字段里。
比如,一张名片上有单位、姓名、职务、电话、电子邮件等几个信息。可以把这些信息分别设定一个字段,也可以用explode和implode合并到一个字段中。只是,这样操作后,代码量有所增加。而且在字段搜索上相对麻烦了些。
发表于 2011-8-26 14:38:27 | 显示全部楼层
还有,json格式是键值对应的。如果使用这种格式,你得保证每一条数据存入到表中的格式完全一样。否则从表中取出后,你就必须用一个函数或一堆代码去验证取出的数据。
 楼主| 发表于 2011-8-26 14:59:16 | 显示全部楼层
spt119 发表于 2011-8-26 14:38
还有,json格式是键值对应的。如果使用这种格式,你得保证每一条数据存入到表中的格式完全一样。否则从表中 ...

其实JSON就是key-Value的数据结构,例如父母亲,家庭住址这些基本不需要用到搜索为什么不将他们都放到一个集合里面.假如日后需要添加一个毕业去向的字段...就无需修改数据库了..除非是一个用来检索的字段!
发表于 2011-8-27 00:18:53 | 显示全部楼层
感觉mongodb很适合你。

点评

你要知道..MongoDB是给企业级的企业级应用的!  发表于 2011-8-27 11:24

本版积分规则