我的意图是为小型宠物疫苗应用程序设计数据库模式。在宠物表中,我想存储有关宠物的详细信息,以及是否需要特定的疫苗接种。3~4种疫苗类型(VT1、VT2、Vt3、VT4)保存在Vaccine_Type表中.对于每种疫苗类型,都有来自不同供应商的疫苗,所以我决定将这些信息存储在疫苗表中。疫苗接种详细信息存储在关联表-疫苗接种中。其中包括:vaccination_type,pet_id、 vaccine_id、veterinarian_id,vaccination_date和expiation_date,(如果过期日期超过 active 字段)设置为False,这表明疫苗接种不再有效,需要新的疫苗接种。请建议如何将这些信息链接到宠物表中,以显示哪种疫苗类型需要重新接种。如果数据库架构是正确的,或者可以进行更多的优化,则提供建议。

发布于 2022-08-19 18:04:00
我会修改一下。
H 119添加E 120物种E 221表。前猫狗狗..。此表将链接到宠物表和疫苗表。疫苗是特定于物种的,如果它们是通用的,则将其添加到两者之间的链接表中。这个表稍后会很有用。
如果要检查宠物是否接种过期疫苗,请执行以下操作:
如果已过期,则通过调度application.安排新的注入。
作为一般概念,将数据存储在数据库中。任何需要计算的内容都不是在字段中,而是在应用程序中,使用数据库中的数据。
另一个概念是,不要将可以从其他链接中派生出来的东西链接起来。这是尊重正常形式的。
所以:
Pet
petid, PK
name, NN
speciesid, FK (Species.speciesid), NN
Species
speciesid, PK
name, NN
Vet
vetid, PK
name, NN
Vaccine
vaccineid, PK
name, NN
vaccinetypeid, FK (Vaccinetype.vaccinetypeid), NN
activeperiod, NN
Vaccinetype
vaccinetypeid, PK
name, NN
Vaccine_Species
vaccineid, FK (Vaccine.vaccineid)
Species, FK (Species.speciesid)
Vaccination
vaccinationid
vetid, FK (Vet.vetid)
petid, FK (Pet.petid)
vaccineid, FK (Vaccine.vaccineid)
date, NN图例:
备注:
https://stackoverflow.com/questions/73414080
复制相似问题