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

2017 年 7 月 21 日
 mortonnex
springmvc+mybatis

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

你们的经验是什么?
8470 次点击
所在节点    程序员
33 条回复
Miy4mori
2017 年 7 月 21 日
你可以了解一下 flyway 或者 liquibase
workwonder
2017 年 7 月 21 日
预留字段真的有意义? 最恶心当初预留的字段瞎起个名字,后来变得“有意义”。
zhx1991
2017 年 7 月 21 日
新增的字段只有插入的地方要改吧...

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

新功能可以用新的表,或者放到一个 key value 数据库里。
vindurriel
2017 年 7 月 22 日
一个馊主意

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 年 7 月 22 日
一个成熟方案就是用 migration

把 migration 的文件存档(i.e.不要加到 .gitignore 里)
这样要咋加咋加,而且方便 onboarding
BooksE
2017 年 7 月 22 日
这样的话。。。试试 key-value?
iwillhappy1314
2017 年 7 月 22 日
可以参考一下 WordPress 的 metadata 设计。

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

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

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

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

© 2021 V2EX