gpt4 book ai didi

mysql - 具有多个值的数据库单元格?

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:38 31 4
gpt4 key购买 nike

我正在设计一个应用程序,我想在其中根据症状搜索疾病。我正在尝试使用 MySql 设计数据库,但作为初学者,我在设计理念上遇到了一些麻烦。

基本上一种疾病会有多种症状,所以在 disease 表中我希望有这些列:

disease_id, disease_name, disease_description, **disease_symptoms** 

问题是,一种疾病不会只有一种症状,根据我在网上发现的情况,将多个值放在一个单元格中违背了 DB 设计理念。

所以到目前为止我找到的最佳解决方案是制作一个包含多列的表格,1 列用于疾病 ID,然后 10 列称为:symptom_0symptom_1symptom_2 等。因此,当我执行 SQL 查询时,它可以返回所有具有特定症状的疾病。

我只是想知道是否有更有效的方法来做到这一点。

最佳答案

如果疾病和症状(或任何其他实体,实际上)之间存在 M-to-N 关系,则需要 3 个表:第一个用于疾病,例如 (disease_id, ...),第二个用于症状 (symptom_id, . ..) 和第三个,链接表,(disease_id, symptom_id)。

然后,您执行如下 SQL:SELECT * FROM diseases WHERE disease_id IN (SELECT disease_id FROM diseases_vs_symptoms WHERE symptom_id = MY_SYMPTOM);

更新 我刚刚用谷歌搜索了一下,发现这个看起来很有希望的 SO 问题,您可能会发现它很有用:Relational Database Design Patterns?

关于mysql - 具有多个值的数据库单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867738/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com