我正在开发一个新项目,我可以在设计数据库时使用一些帮助。
想象一下这些表:
table groups
---------------------
group_id
table supplements
---------------------
supp_id
supp_name
supp_price
table recipes
---------------------
rec_id
supp_id
supp_weight
所以,让我解释一下。
用户可以将groups
(动物)添加到他的帐户中。他还可以添加(食物)supplements
。使用两个或更多supplements
他可以创建recipe
。
到目前为止没有任何问题。
然后用户必须能够注册他给动物的食物。所以我需要一张表given_food
或其他东西。通常情况下,我会使用rec_id
并将其添加到表中,并与group_id
和date
相结合,但
recipe
。这意味着他可能会喂食90%或110%的配方。所以问题是,如何在数据库中最好地保存这些信息?
答案 0 :(得分:1)
对于费用,您应该添加一个定价表,如
table prices
-----------
p_id
p_suppid
p_price
p_validfrom -- date at which new price was given
并且组表应配备amount
列:
table groups
------------
g_id
g_recid
g_amount -- percentage of nominal amount (90 ... 110)
通过加入这些表,您应该能够组织所需的所有数据。可以通过
找到特定日期(当前日期)的'补充剂(或成分)的有效价格SELECT supp_id, p_price FROM supplements
INNER JOIN prices ON p_id=( SELECT p_id -- finds id of the latest
FROM prices -- pricing info before currentdate
WHERE p_suppid=supp_id
AND p_validfrom < currentdate
ORDER BY p_validfrom DESC LIMIT 1 )