如何应对数据库中的表结构经常变动的业务情况,主要会增加列数?

2014-09-03 08:28:40 +08:00
 shade
6630 次点击
所在节点    Python
14 条回复
zjgsamuel
2014-09-03 08:37:07 +08:00
默认定义多个自定义列那 使用的时候用不就是了
guoqiao
2014-09-03 08:41:50 +08:00
django的话, 用 south 修改数据库规格非常方便. 不知道你用的什么技术, 应该也有类似的东西.
shakoon
2014-09-03 08:58:30 +08:00
同意一楼说的预留多个自定义列。但也要反思为什么表会经常变结构,这是明显的架构设计失误。
tobyzw
2014-09-03 09:21:59 +08:00
两个字段,key value
字典表
value自定义,XML,json都可以
dong3580
2014-09-03 10:45:59 +08:00
如果是.NET写的话,就直接映射数据库实体,每次数据库加了字段,只需要更新一下实体映射就行了,点几个按钮。
woshifyz
2014-09-03 10:58:24 +08:00
在定义的时候就要考虑表的scheme,像这样经常变动的情况,可以抽出相关字段做成json
wy315700
2014-09-03 11:10:17 +08:00
MongoDB 适合你
zeayes
2014-09-03 11:14:47 +08:00
NOSQL
jamiesun
2014-09-03 12:00:21 +08:00
扩展表嘛,以前见过中移动一张表150多个字段外加扩展表几十个字段.
lecher
2014-09-03 13:37:32 +08:00
json这种格式最合适
不用mongodb的话就存json序列化的数据,要用再解析。
如果你是有经常变动的字段需要搜索的,mongodb了,如果是普通的sql,还是考虑一下重构的问题了,在搜索上面出现需要索引额外添加字段的问题,什么样的业务场景才会出现这样的需求?
pi1ot
2014-09-03 13:47:56 +08:00
把列换成行。
akira
2014-09-03 15:36:34 +08:00
开发期考虑不周全,偶尔变一下可以接受。
天天变就要考虑换个人来做设计了
ryancao
2014-09-03 15:51:53 +08:00
SQL:
* 核心表+扩展表, 参照 wordpress (posts, post_meta)
* 更加低效but强大的办法EAV(Entity, Attribute, Value), 参照 Magento(eav_xxx)

NoSQL:
* MongoDB欢迎你,虽然是shemaless的,不过建议还是维护一份schema数据并基于schema维护数据,比如集成Json Schema?
buxingjie
2016-10-16 20:31:21 +08:00
@lecher 加入某个业务对象有 100 个业务参数(实际未知),部署到 A 企业需要 1-10 ,部署到 B 企业需要 11-17 ,关系型数据库怎么办,而且上线后也要可修改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/131424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX