V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xuwenmang
V2EX  ›  问与答

超级不喜欢 SQL,存的时候要把信息打散,取的时候到处找查找合并,真的不舒服!!!!特别是一个字段下有多个值的时候!!!听说 MongoDB 可以解决?

  •  
  •   xuwenmang · 2015-01-14 06:05:57 +08:00 · 3400 次点击
    这是一个创建于 3403 天前的主题,其中的信息可能已经有所发展或是发生改变。
    身高:173公分
    體重:50公斤
    生日:11/23
    年齡:22歲
    精通語言:俄、中、英、日
    專長:模特兒、藝術
    興趣:煮飯、跳舞、旅行,閱讀、演戲
    14 条回复    2015-01-14 11:40:27 +08:00
    vibbow
        1
    vibbow  
       2015-01-14 06:23:23 +08:00
    你可以选择不打散啊...
    zkd8907
        2
    zkd8907  
       2015-01-14 07:44:45 +08:00
    关系型数据库保存信息的时候尽量还是按ER模型设计。。。为什么要打散。。。
    em70
        3
    em70  
       2015-01-14 07:48:14 +08:00 via Android   ❤️ 1
    不需要查询的效率,就不用打散
    loading
        4
    loading  
       2015-01-14 08:05:04 +08:00 via Android
    你是说要 name=xxx,weight=999这样“打散”写sql?
    bugeye
        5
    bugeye  
       2015-01-14 08:18:32 +08:00
    mongodb是json,这些信息可以存一起。
    关系数据库像一对多的信息,如精通语言,专长,兴趣确实最好分别存到相应的表中。但好像这不是什么特别难以理解,处理的东西吧。
    decken
        6
    decken  
       2015-01-14 08:27:31 +08:00 via Android
    因为SQL是关系型数据库,打散了就失去了他的优势了
    coffeedeveloper
        7
    coffeedeveloper  
       2015-01-14 09:14:55 +08:00   ❤️ 1
    我觉得楼主的意思是这样的。
    现在有一个用户表,里面的专长、兴趣等信息会有多个值。
    一般我们去做表规划的时候会弄一个专长表、兴趣表,然后关联起来。
    当需要查找兴趣有旅行的用户的时候需要join几个表。
    xuwenmang
        8
    xuwenmang  
    OP
       2015-01-14 09:56:32 +08:00
    @coffeedeveloper 嗯,就是很多感觉暂时用不到单独表。不分觉得不好,分了觉得琐碎墨迹。明明很直观的信息。
    @bugeye 嗯,听说Mongodb好像可以很直观的存储。就觉得SQL做结构化很好,但是很多信息不需要把信息拆开,感觉太墨迹了。
    zts1993
        9
    zts1993  
       2015-01-14 10:04:02 +08:00
    有什么不好。觉得每次写join烦写成view不就好了。毕竟这是SQL, NoSQL没有看上去那么美,特别是MongoDB
    10iii
        10
    10iii  
       2015-01-14 10:06:38 +08:00
    精通語言:{"俄","中","英","日"}
    專長:{"模特兒","藝術"}

    这么搞就满足LZ需求了,失去了一些东西,反正LZ也不用关心就是了。
    lichao
        11
    lichao  
       2015-01-14 11:11:53 +08:00
    打散即分表,是为了规避冗余数据
    66beta
        12
    66beta  
       2015-01-14 11:13:10 +08:00
    楼主不知道冗余
    srrshweee
        13
    srrshweee  
       2015-01-14 11:38:13 +08:00
    楼主等你用到大数据量的查询了你就知道为什么SQL要打散了
    mywaiting
        14
    mywaiting  
       2015-01-14 11:40:27 +08:00
    LZ说的打散的意思是按照范式设计,然后需要的时候各种 join ?

    这不是打散不打散,而是整个关系数据库的理论基础就是这样的。不喜欢各种 join 就去找各种 NoSQL,或者你可以把关系型数据库用成NoSQL那样!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1146 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:42 · PVG 02:42 · LAX 11:42 · JFK 14:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.