gpt4 book ai didi

sql - 多种选择的数据库设计

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

我有一个Users 表,我正在构建一个应用程序来跟踪一个人每天吃多少水果。

当用户进入应用程序时,他们会选择每天要吃的水果。该表将如下所示:

CurrentlyEating
---------------
ID
FruitID (Foreign Key)
UserID (Foreign Key)

还需要一个包含用户可能采摘的所有水果的表格:

Fruits
------
ID
Name

这是实现这一目标的最佳方式吗?我一直在阅读查找表,我不确定这是否是更好的方法。此外,如果我决定在未来向这张 table 添加更多水果,我需要它在前端易于更新。

最后,我有一个名为 Journal 的最后一个表,它记录了用户每天吃的特定水果的数量:

Journal
-------
ID
DateTime
FruitID (Foreign Key)
UserID (Foreign Key)
AmountConsumed

总的来说,我只想知道我的方法是否是解决此问题的最佳方法,以及是否有任何更有效的方法。

谢谢

最佳答案

您的整体方法看起来不错:有一个引用表来存储所有可能的水果,然后使用外键引用它。创建一个单独的表来保留用户选项也是一个好主意。

这是一个总体设计:

表用户(你已经有了):

id    ...
1

表格水果:所有可能的水果(可以添加更多信息,例如:每克卡路里,...)

id    name      ...
1 orange
2 banana

USER_FRUITS :哪个用户选择了哪个水果(这里,用户 1 选择了香蕉)

id    user_id    fruit_id
1 1 2

JOURNAL:哪个用户吃了哪个水果(用户 1 吃了 20 克香蕉)

id    datetime     user_id    fruit_id    amount
1 ... 1 2 20

基于此设计,这里是一个返回给定用户日志的查询:

SELECT j.datetime, f.name, j.amount
FROM journal as j
INNER JOIN fruits as f ON f.fruit_id = j.id
WHERE j.user_id = ?
ORDER BY j.datetime

关于sql - 多种选择的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53917481/

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