V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
missdeer
V2EX  ›  数据库

记录中有一个字段是个元素个数不一定的数组,这种情况怎么设计表结构啊?

  •  
  •   missdeer · 2014-07-15 10:28:53 +08:00 · 928 次点击
    这是一个创建于 3785 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如这种
    http://gist.github.com/5d28cb6cb44f6f7ce6c0

    recipients是个数组,里面元素个数不一定,0~n个都有可能。
    10 条回复    2014-07-16 07:50:12 +08:00
    minbaby
        1
    minbaby  
       2014-07-15 11:20:46 +08:00
    如果数组没有多大可以用 a,b,c 这种格式存,
    如果数组比较大,那就纵向扩展,新建一张表,来记录 字段的映射关系,
    比如 master_table | id, r_id
    slave_table | r_id , value
    66beta
        2
    66beta  
       2014-07-15 12:19:16 +08:00
    如果是mysql的话,类型选text 然后 存json可否?
    missdeer
        3
    missdeer  
    OP
       2014-07-15 13:04:02 +08:00
    @66beta 存了json查询就不方便了
    justfindu
        4
    justfindu  
       2014-07-15 13:13:36 +08:00
    id key value

    这样存表, 如果有相关的,再加一个相关id. 可以确保相关ID的key-value唯一性.

    跟WP的那个user-mate, article-mate 一样设计- -
    justfindu
        5
    justfindu  
       2014-07-15 13:14:34 +08:00
    到时候还可以复用 = =, 查询时候就联表
    GordianZ
        6
    GordianZ  
    MOD
       2014-07-15 13:15:31 +08:00
    @justfindu 好好的元数据被你说成数据伴侣了…… meta ≠ mate
    justfindu
        7
    justfindu  
       2014-07-15 13:30:12 +08:00
    @GordianZ T-T 别这样 再见
    poke707
        8
    poke707  
       2014-07-15 14:08:21 +08:00
    用nosql如何?
    missdeer
        9
    missdeer  
    OP
       2014-07-15 14:13:08 +08:00
    @poke707 不行啊,已经选好要用mysql了
    abscon
        10
    abscon  
       2014-07-16 07:50:12 +08:00 via Android
    @missdeer 对于Postgresql 来说是小菜一碟,直接支持数组。http://www.postgresql.org/docs/current/static/arrays.html
    不过既然你已经选好要用yoursql了,那就没办法啦
    ╮(╯_╰)╭
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2797 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:14 · PVG 15:14 · LAX 23:14 · JFK 02:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.