1 Dx2619 2017-07-21 18:53:54 +08:00 via iPhone 一定要新增字段吗?新增个表做关联不好嘛?没经验瞎问 |
![]() | 3 anyele 2017-07-21 19:00:38 +08:00 via Android 同问 |
![]() | 4 gamexg 2017-07-21 19:04:46 +08:00 可以预先建立备用字段,不过没这样干过。 |
6 nandaye 2017-07-21 19:41:44 +08:00 via Android 经常新增应该是模型设计师对业务理解不到位,并且没有合理的预留字段。换个专业的模型或者你的处理逻辑灵活些。 |
![]() | 7 lzhr 2017-07-21 19:47:14 +08:00 json |
![]() | 8 ericls 2017-07-21 19:51:33 +08:00 via iPhone 那个表来一个 json column |
9 fox0001 2017-07-21 19:53:27 +08:00 via Android 你需要 MongoDB |
![]() | 10 popbones 2017-07-21 19:59:34 +08:00 via iPhone 如果经常新增字段是设计问题考虑更灵活的设计,如果是业务逻辑决定的,考虑 NoSQL |
11 xuyankang 2017-07-21 20:17:53 +08:00 mybatis 自动生成 crud,每次改数据库,重新生成一次。 |
![]() | 12 nutting 2017-07-21 20:19:37 +08:00 via Android 说明不需要关系,用 nosql |
![]() | 14 nfroot 2017-07-21 20:27:14 +08:00 via Android 这也是我最近考虑的问题 如果是表单类型的页面 想着是不是所有字段都是动态显示的 加的时候设置好 标记好 目标页面直接动态生成 |
![]() | 15 fortunezhang 2017-07-21 20:31:13 +08:00 1.如果有 migration 的话,没有太大问题。 比如 rails laraval 都做的很棒; |
![]() | 16 fortunezhang 2017-07-21 20:36:18 +08:00 1.如果有 migration 的话(不太了解 java 这一块),没有太大问题。 比如 rails laraval 都做的很棒; 2.如果没有的话,可以使用一个文件,比如 all_table.sql ,来代替,每次拉下来的时候,看看这个文件有没有变化,变化了,git show 一下执行就好了 3.设计的时候,如果感觉会新建字段(怎么感觉,这个没法详细解释,比如新闻表,之存了,title,description,content,这时候就能感觉到了),增加一个 data 字段,这个字段存储的内容有特定要求,只负责显示,不参与检索。 |
![]() | 17 Ouyangan 2017-07-21 20:44:12 +08:00 jpa.. |
![]() | 18 choury 2017-07-21 20:49:22 +08:00 via Android 修改数据库,实现在线快速加字段功能,哈哈,我们厂是这么做的 |
![]() | 19 O14 2017-07-21 21:02:18 +08:00 via Android 用 HBase |
![]() | 20 changhe626 2017-07-21 21:10:53 +08:00 谁一定要改数据库表设计,......... |
![]() | 21 Miy4mori 2017-07-21 21:30:50 +08:00 via iPhone 你可以了解一下 flyway 或者 liquibase |
![]() | 22 workwonder 2017-07-21 22:32:53 +08:00 via Android 预留字段真的有意义? 最恶心当初预留的字段瞎起个名字,后来变得“有意义”。 |
23 zhx1991 2017-07-21 22:36:51 +08:00 新增的字段只有插入的地方要改吧... 而且只有新的业务要这个字段, 老的逻辑完全不用动啊. |
![]() | 24 reus 2017-07-21 22:39:59 +08:00 手工改掉 SQL 语句,不搞那么多弯弯绕绕 |
![]() | 25 ebony0319 2017-07-21 22:41:02 +08:00 via Android 你需要一本书《 sql 反模式》 |
![]() | 26 rrfeng 2017-07-21 22:43:54 +08:00 via Android 用 mongo |
![]() | 27 leemw 2017-07-21 23:07:38 +08:00 mysql 和 mongodb 混用 |
![]() | 28 wangdu2012 2017-07-22 08:17:14 +08:00 via iPhone 修改原表?一看就有点…没经验。 |
![]() | 29 Livid MOD PRO 尽量不要 alter table,数据量大的时候锁几个小时都有可能,业务会受很大影响。 新功能可以用新的表,或者放到一个 key value 数据库里。 |
![]() | 30 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> |
![]() | 31 hahatest 2017-07-22 12:48:22 +08:00 一个成熟方案就是用 migration 把 migration 的文件存档(i.e.不要加到 .gitignore 里) 这样要咋加咋加,而且方便 onboarding |
![]() | 32 BooksE 2017-07-22 13:08:54 +08:00 这样的话。。。试试 key-value? |
33 iwillhappy1314 2017-07-22 15:59:33 +08:00 可以参考一下 WordPress 的 metadata 设计。 |