cevincheung
V2EX  ›  问与答

在处理一些像“收藏”或“关注”等问题的时候,更倾向于是一张表建立关系还是一张表多个字段?

  •  
  •   cevincheung · May 19, 2015 · 1848 views
    This topic created in 4100 days ago, the information mentioned may be changed or developed.

    比如收藏啊

    文章表:

    articleid title
    1 some title
    2 some title

    一个表,加一个字段这么存

    userid favorite
    1 1,2
    --- 获取一篇文章的收藏用户列表
    select userid from users where find_in_set(1,favorite)
    

    还是:

    userid articleid
    1 1
    1 2
    --- 获取一篇文章的收藏用户列表
    select userid from favorite where articleid = :articleId
    
    3 replies    2015-05-21 19:28:49 +08:00
    lincanbin
        1
    lincanbin  
       May 19, 2015 via Android   ❤️ 3
    后者,前者处理起来不方便。
    后者可以直接left join文章表,一条SQL就可以实现查询收藏文章列表,并且在量大了之后依旧有不错的性能。
    lincanbin
        2
    lincanbin  
       May 19, 2015 via Android
    无论是实现难度还是性能,都是后者占优!
    nekoyaki
        3
    nekoyaki  
       May 21, 2015
    第一种不如存储在redis里面了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4400 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:07 · PVG 12:07 · LAX 21:07 · JFK 00:07
    ♥ Do have faith in what you're doing.