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

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

  •  
  •   vindac · 2018-04-23 10:22:02 +08:00 · 1378 次点击
    这是一个创建于 2407 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    4 条回复    2018-04-23 11:59:46 +08:00
    leven87
        1
    leven87  
       2018-04-23 10:33:48 +08:00 via Android
    感觉这个相似问法做出搜索关键词就好?关键词做个分词?
    Leigg
        2
    Leigg  
       2018-04-23 10:51:41 +08:00
    同楼上,做关键词匹配就行了,关联问题就像题主说的那样应该 ok 的,毕竟是自定义的。
    lance6716
        3
    lance6716  
       2018-04-23 11:59:15 +08:00
    看一下数据库范式。normalize until it hurts, denormalize until it works
    deming
        4
    deming  
       2018-04-23 11:59:46 +08:00
    问题设计成问题表
    答案设计个答案表。
    相似问题可以采取在问题主体信息上打标签的方式(不是很准确),或者用数据分析和相似度匹配推荐“相同问题”
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2816 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 11:52 · PVG 19:52 · LAX 03:52 · JFK 06:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.