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

2018-04-23 10:22:02 +08:00
 vindac

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

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

2.做成三张表
id | problem|anwser
id | simId | simProblem
id | conId

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

1312 次点击
所在节点    数据库
4 条回复
leven87
2018-04-23 10:33:48 +08:00
感觉这个相似问法做出搜索关键词就好?关键词做个分词?
Leigg
2018-04-23 10:51:41 +08:00
同楼上,做关键词匹配就行了,关联问题就像题主说的那样应该 ok 的,毕竟是自定义的。
lance6716
2018-04-23 11:59:15 +08:00
看一下数据库范式。normalize until it hurts, denormalize until it works
deming
2018-04-23 11:59:46 +08:00
问题设计成问题表
答案设计个答案表。
相似问题可以采取在问题主体信息上打标签的方式(不是很准确),或者用数据分析和相似度匹配推荐“相同问题”

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449030

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX