missdeer
V2EX  ›  数据库

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

  •  
  •   missdeer · Jul 15, 2014 · 1429 views
    This topic created in 4347 days ago, the information mentioned may be changed or developed.
    比如这种
    http://gist.github.com/5d28cb6cb44f6f7ce6c0

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

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

    跟WP的那个user-mate, article-mate 一样设计- -
    justfindu
        5
    justfindu  
       Jul 15, 2014
    到时候还可以复用 = =, 查询时候就联表
    GordianZ
        6
    GordianZ  
       Jul 15, 2014
    @justfindu 好好的元数据被你说成数据伴侣了…… meta ≠ mate
    justfindu
        7
    justfindu  
       Jul 15, 2014
    @GordianZ T-T 别这样 再见
    poke707
        8
    poke707  
       Jul 15, 2014
    用nosql如何?
    missdeer
        9
    missdeer  
    OP
       Jul 15, 2014
    @poke707 不行啊,已经选好要用mysql了
    abscon
        10
    abscon  
       Jul 16, 2014 via Android
    @missdeer 对于Postgresql 来说是小菜一碟,直接支持数组。http://www.postgresql.org/docs/current/static/arrays.html
    不过既然你已经选好要用yoursql了,那就没办法啦
    ╮(╯_╰)╭
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1351 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 23:54 · PVG 07:54 · LAX 16:54 · JFK 19:54
    ♥ Do have faith in what you're doing.