我正在创建一个数据库来跟踪我自己的各种统计数据,我想知道是否有更好的方法来存储单个日期的多个条目。
E.g。从我的表中我有AllergyMedicine可以跟踪同一天采取的多种药物,有更好的方法吗?
表格Food and Allergy似乎没必要,有没有更好的方法来分组表?
答案 0 :(得分:1)
当然,如果您在一天服用多种药物,为什么不在自己的餐桌上隔离那天(=日期)?
所以你会有一个只有日期的表“天”,你要么预先填写(比如日历),要么只填写那些你真正服用该药的日子。
这样,您可以通过将日期“居中”在一个表格中并将其他所有内容与之相关联来节省大量空间。这实际上是一个非常精确的现实模型。
所有你的“FoodSnack”,“FoodMeal”,“AllergyMedicine”等等都会在其中成为简单的N:M映射表。
你甚至可以进一步抽象,减少表并只制作三个表:
所有这些都与中央“日”表相关(我不会将其称为“日期”,因为这是一个关键字而且容易被误解),并且在适用的情况下相互关联。
答案 1 :(得分:1)
我发现以半结构化的方式陈述问题是有帮助的,如下所示。
The system monitors one or more **persons**.
Each person consumes zero or more **items**. Each consumption has an attribute of date and time.
Items can be **food**, or **medicines**.
Food can be of the types **snack**, **fruit** or **meal**.
A meal has a **type**.
A person may report **symptoms**. Each report will cover a period of time, and be reported at a specific date/time.
Symptoms may be associated with zero or more **allergies**.
我不相信" date"是您架构中的实体 - 它是发生的事件的属性,例如消耗某些东西,或注意到症状。
如果上述陈述为真,则架构可能是: