V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
vindac
V2EX  ›  数据库

有一个关于数据库表设计的问题想不通

  •  
  •   vindac · Apr 23, 2018 · 1805 views
    This topic created in 2931 days ago, the information mentioned may be changed or developed.

    有这么个需求:要设计个关于常见问题的表。也就是一个问题对应一个答案。现在,一个问题可以有多个相似的问法,而一个问题呢,又可以有一个关联问题。我大概有两种想法:

    1. 做成一张表
     | id | problem | anwser|simId| conId  | 
    如果是相似问法,就把 simId 设置成一样的,如果是关联问题,就把 conId 设置成一样.
    
    2.做成三张表
    id | problem|anwser
    id | simId | simProblem
    id | conId
    

    (排版可能有点难看。见谅) 两种方式查询语句我会写,那么插入语句怎么写呢?或者有没有更好的设计方法?求指教,谢谢

    4 replies    2018-04-23 11:59:46 +08:00
    leven87
        1
    leven87  
       Apr 23, 2018 via Android
    感觉这个相似问法做出搜索关键词就好?关键词做个分词?
    Leigg
        2
    Leigg  
       Apr 23, 2018
    同楼上,做关键词匹配就行了,关联问题就像题主说的那样应该 ok 的,毕竟是自定义的。
    lance6716
        3
    lance6716  
       Apr 23, 2018
    看一下数据库范式。normalize until it hurts, denormalize until it works
    deming
        4
    deming  
       Apr 23, 2018
    问题设计成问题表
    答案设计个答案表。
    相似问题可以采取在问题主体信息上打标签的方式(不是很准确),或者用数据分析和相似度匹配推荐“相同问题”
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   902 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 23:23 · PVG 07:23 · LAX 16:23 · JFK 19:23
    ♥ Do have faith in what you're doing.