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

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

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

他说这样可以避免外键的混乱和冲突,自己来维护外键关系。
11725 次点击
所在节点    MySQL
115 条回复
DjvuLee
2015-05-27 11:44:44 +08:00
@scalala mongo 是一个document类型的数据库。它把一个json看成是一个document,怎么会不搭界呢?况且mongo有sharding操作,以后也方便扩展。
DjvuLee
2015-05-27 11:46:50 +08:00
大家都说的很好。如果只是这样,要么使用k-v数据库,要么使用内置json处理的postgresql。或是lz有一些其他考虑没有提到?
learnshare
2015-05-27 11:50:11 +08:00
他这种用法,是文档数据库,用 MySQL 不合适。
mathgl
2015-05-27 11:52:00 +08:00
mariadb 现在好像支持json了。
matsuijurina
2015-05-27 11:52:05 +08:00
@jarlyyn 我觉得你的说法是比较有道理的。主要是适应多种业务模式增加数据弹性。用MySQL做KVS真的能在性能上超过MongoDB吗? 我有点怀疑。
winnie2012
2015-05-27 11:52:41 +08:00
这个设计有点反常规,看看各位大牛如何吹。
scalala
2015-05-27 11:53:44 +08:00
@nigelvon 把20字段都放一个json存取性能是比一个20字段的mysql表存取性能要好的. 这个方案当然也是附带了schemaless的作用.
这样做其实就是要弱化数据库的作用,排序什么的都在应用里做(或者把需要排序的字段抽出来做索引).
这种事本来应该用专门的KV数据库的, 估计楼主的CTO是考虑到MySQL比较成熟/熟悉.(运维等各方面都要考虑)
nanhuo
2015-05-27 11:53:57 +08:00
关系型数据库设计成这样是要闹哪样?干吗不用mongo
pijingzhanji
2015-05-27 11:55:27 +08:00
你CTO中了NoSQL的毒,这样还用什么mysql,用redis算了
ichou
2015-05-27 11:56:04 +08:00
不是说 MySQL 要支持 json 了么?
nigelvon
2015-05-27 11:58:03 +08:00
@scalala 存取性能好没用啊,而且也好不过mongo,关键是怎么查。如果不需要查的话,要MySQL干甚。
neoblackcap
2015-05-27 11:59:47 +08:00
@scalala 我觉得这样做大概是为了拓展好(KV貌似没有不好),不过以前没有大批nosql数据库之前这样做我理解啊,但是现在还这样做,我真是不能理解了。我是很难想象mysql在这个方面可以跑赢mongodb的。

所以嘛,现在的话,关系型数据就应该按照关系型数据的用法,不是关系型数据的逻辑应该放在nosql数据库中处理,没有哪个规定应用一定要只用一种数据
jarlyyn
2015-05-27 12:08:12 +08:00
@matsuijurina

和性能没关系啊。

很基本的道理,我的业务必要考虑到可能在虚拟主机上使用。

所以必须支持php 5.2/5.3,必须使用mysql。

我这里的业务是给企业建站的。

如果企业需要要给某个栏目添加一个视频,需要添加一个作者,需要添加一个副标题,需要添加一个简介,需要添加一组幻灯片。

难道我还去调整数据库么?

直接继承下model的基类,添加两个自动序列化/反序列化的类,后台就自动多了输入框了。然后视图里用个getModelValue('xxx')方法,就完工了。

需求决定一切么。
cdffh
2015-05-27 12:15:00 +08:00
他不会有涉及json内部的查询吗? 查询全是基于id的? 如果没有就没啥问题.
mhycy
2015-05-27 12:15:44 +08:00
@jarlyyn 那么为了性能至少还需要一个永不重复的type字段, 以路径形式命名...
zhicheng
2015-05-27 12:21:52 +08:00
这跟 friendsfeed 的设计不一样好嘛。
一般来讲,这事儿就是 CTO 蛋疼。一个不折腾的 CTO 也是公司之福。
jsq2627
2015-05-27 12:23:59 +08:00
文档数据库是最佳选择。
在应用层做数据约束好处是可以很方便的水平扩展。坏处是如果没有很清晰的文档和规范,基本没人能 100% 做到位。
moro
2015-05-27 12:29:16 +08:00
我在想,会不会有题主的CTO来开贴。。
finian
2015-05-27 12:30:45 +08:00
这样用还不如直接用 nosql
FrankFang128
2015-05-27 12:32:25 +08:00
坐等 CTO 发帖

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

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

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

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

© 2021 V2EX