CTO,新设计的所有的表都只有 id 和 detail。我不是很理解,求解释。

2015-05-27 11:04:43 +08:00
 sinux
detail是一个json字符串。

原来的所有的外键和column全都都放到detail里面。

他说这样可以避免外键的混乱和冲突,自己来维护外键关系。
11764 次点击
所在节点    MySQL
115 条回复
MrEggNoodle
2015-05-27 12:34:00 +08:00
@moro 哈哈哈哈哈哈。
roricon
2015-05-27 12:34:59 +08:00
是新增的表全都长这样,还是所有的表全都这样?
如果全部表都这样,查询性能怎么解决……这样做是完全抛弃主键以外的索引了么?
jarlyyn
2015-05-27 12:35:04 +08:00
@mhycy
当然不是,留一个关键字。

至于关键字对应的类文件,在一个配置文件里定义。
Lullaby
2015-05-27 12:36:25 +08:00
@FrankFang128 最近v2成了撕逼社区
quix
2015-05-27 13:19:22 +08:00
这是典型的把 rdbms 当 nosql 来用... 某些情况下确实也可以..
hkongm
2015-05-27 13:22:40 +08:00
直接上nosql啊
quix
2015-05-27 13:23:35 +08:00
对于不需要索引的内容字段, Lz 的 cto 这样做应该无伤大雅.
soli
2015-05-27 13:24:05 +08:00
几乎所有人都盯着业务、性能、查询、索引。。。

好像只有 @scalala 提到了成熟度和运维。
loading
2015-05-27 13:38:58 +08:00
我很多时候会在里面存json的kv数据,例如设置信息,这样就不会因为后面增加功能而担心没字段存了,一个字段全存完!

可是像楼主描述那样,这个字段不都是一样的内容吗?
yangzh
2015-05-27 13:40:11 +08:00
这个用 redis mongodb 吧哈哈
cevincheung
2015-05-27 13:40:37 +08:00
果断上postgresql啊
langhua9527
2015-05-27 13:42:35 +08:00
有查询条件怎么办?
9hills
2015-05-27 13:50:56 +08:00
NoSQL没问题,但是用MySQL不太好。。
wbolor
2015-05-27 13:54:58 +08:00
记得很早前看过一篇文章 reddit 好像就是这么搞的。。。
sivacohan
2015-05-27 14:00:49 +08:00
是"只有",还是"都有"
如果是都有的话,可以理解,id做主键,主键和业务无关是有优势的。detail应对来自其他部门的乱七八糟的需求。
如果是只有的话就有点奇怪了。这完全放弃了SQL啊。每次查询点什么都是全表扫描,相当于应用层实现了一个SQL,图什么啊?而且数据量上去了,你把所有的数据都放应用里,不怕内存爆了吗?前端应用至少两个吧,你怎么保持数据的一致性?
如果你的CTO能有理有据的解释我上面的问题,请你一定告诉我。我之前也遇到过类似的架构,解释就是移植性好,后面数据库随便换,这个理由我完全接受不了。
Mirana
2015-05-27 14:02:30 +08:00
坐等cto来撕哔
kenken
2015-05-27 14:04:06 +08:00
我们就是这么玩的。 我们现在id和detail detail使用json存储。
1,运维成熟,稳定性更高。安全性非常高
2,搜索用elasticsearch单独做。速度更快,比mysql量级高很多,分词灵活
3,数据分析有hadoop,hive等工具。以及离线的其他pg,或者elasticsearch做运维系统。
4,最初设计也是上层的灵活性。上层字段添加非常多,业务开发也很频繁。1000+个字段的表无法每个字段都存储的。
5,很重要的支持事务。
scys
2015-05-27 14:05:27 +08:00
找CTO撕逼~
我自己设计的MongoDB设计的结构,直接被新来的CTO。
一口说,MYSQL是最好的,我们还MYSQL~
结果~我自己就去做前端了~
kenken
2015-05-27 14:08:20 +08:00
BTW: 我是CTO
icqdany
2015-05-27 14:44:11 +08:00
@kenken
请问第5点的,事务是怎么做的?

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

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

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

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

© 2021 V2EX