数据库经常新增字段,怎么处理?

2017-07-21 18:39:18 +08:00
 mortonnex
springmvc+mybatis

表的字段被修改,就有很多之前写的文件需要修改?

你们的经验是什么?
7405 次点击
所在节点    程序员
33 条回复
Miy4mori
2017-07-21 21:30:50 +08:00
你可以了解一下 flyway 或者 liquibase
workwonder
2017-07-21 22:32:53 +08:00
预留字段真的有意义? 最恶心当初预留的字段瞎起个名字,后来变得“有意义”。
zhx1991
2017-07-21 22:36:51 +08:00
新增的字段只有插入的地方要改吧...

而且只有新的业务要这个字段, 老的逻辑完全不用动啊.
reus
2017-07-21 22:39:59 +08:00
手工改掉 SQL 语句,不搞那么多弯弯绕绕
ebony0319
2017-07-21 22:41:02 +08:00
你需要一本书《 sql 反模式》
rrfeng
2017-07-21 22:43:54 +08:00
用 mongo
leemw
2017-07-21 23:07:38 +08:00
mysql 和 mongodb 混用
wangdu2012
2017-07-22 08:17:14 +08:00
修改原表?一看就有点…没经验。
Livid
2017-07-22 10:40:04 +08:00
尽量不要 alter table,数据量大的时候锁几个小时都有可能,业务会受很大影响。

新功能可以用新的表,或者放到一个 key value 数据库里。
vindurriel
2017-07-22 11:14:21 +08:00
一个馊主意

create table object (
id bigint auto_increment
)

create table attr{
id auto_increment
object_id bigint
name varchar(255)
value varchar(1024)
key object_attr(object_id,name)
}

好处是不需要加字段了,直接 insert attr 即可。
坏处是不能定义字段取值类型(统一 varchar )

查询:
select a.name,a.value from attr a join object o on a.object_id=o.id where o.id=<NUM>
hahatest
2017-07-22 12:48:22 +08:00
一个成熟方案就是用 migration

把 migration 的文件存档(i.e.不要加到 .gitignore 里)
这样要咋加咋加,而且方便 onboarding
BooksE
2017-07-22 13:08:54 +08:00
这样的话。。。试试 key-value?
iwillhappy1314
2017-07-22 15:59:33 +08:00
可以参考一下 WordPress 的 metadata 设计。

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

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

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

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

© 2021 V2EX