+--------------+ +-------------+ +--------------+
| 疫苗 (Vaccine) | | 施打輪 (Round) | | 登記人 (Person) |
+--------------+ +-------------+ +--------------+
| name (PK) | | num (PK) | | pId (PK) |
| phase | | rBdate | | name |
| madeBy (PK) | | rEdate | | bDate |
| amount | | dose | | gender |
+--------------+ +-------------+ +--------------+
| | |
| | |
| | |
| | |
+-------------+ | +---------------+
| 接種站 (Station) | | | 接種記錄 (VaccinationRecord) |
+-------------+ | +---------------+
| sId (PK) | | | pId (FK) |
| name | +---------------------->| sId (FK) |
| capacity | | num (FK) |
+-------------+ | vDate |
| +---------------+
|
|
+---------------+
| 施打輪與疫苗 (RoundVaccine) |
+---------------+
| num (FK) |
| name (FK) |
| madeBy (FK) |
+---------------+
|
|
+---------------+
| 施打輪與接種站 (RoundStation) |
+---------------+
| num (FK) |
| sId (FK) |
+---------------+
說明
疫苗 (Vaccine)
屬性:名稱 (name, PK)、臨床試驗階段 (phase)、製造國 (madeBy, PK)、剩餘數量 (amount)
主鍵:名稱 (name) 和製造國 (madeBy) 的組合鍵唯一識別一種疫苗。
施打輪 (Round)
屬性:輪數 (num, PK)、預約開始日期 (rBdate)、預約結束日期 (rEdate)、施打劑量 (dose)
主鍵:輪數 (num) 唯一識別一個施打輪。
登記人 (Person)
屬性:識別號 (pId, PK)、姓名 (name)、出生年月日 (bDate)、性別 (gender)
主鍵:識別號 (pId) 唯一識別一個登記人。
接種站 (Station)
屬性:識別號 (sId, PK)、名稱 (name)、容納人數 (capacity)
主鍵:識別號 (sId) 唯一識別一個接種站。
接種記錄 (VaccinationRecord)
屬性:識別號 (pId, FK)、接種站識別號 (sId, FK)、輪數 (num, FK)、接種日期 (vDate)
主鍵:識別號 (pId)、接種站識別號 (sId)、輪數 (num)、接種日期 (vDate) 的組合鍵唯一識別一個接種記錄。
外來鍵:pId 參照 Person 表,sId 參照 Station 表,num 參照 Round 表。
施打輪與疫苗 (RoundVaccine)
屬性:輪數 (num, FK)、疫苗名稱 (name, FK)、製造國 (madeBy, FK)
主鍵:輪數 (num)、疫苗名稱 (name)、製造國 (madeBy) 的組合鍵唯一識別施打輪與疫苗的關係。
外來鍵:num 參照 Round 表,name 和 madeBy 參照 Vaccine 表。
施打輪與接種站 (RoundStation)
屬性:輪數 (num, FK)、接種站識別號 (sId, FK)
主鍵:輪數 (num) 和 接種站識別號 (sId) 的組合鍵唯一識別施打輪與接種站的關係。
外來鍵:num 參照 Round 表,sId 參照 Station 表。
ERD 的關聯性和基數說明
疫苗 (Vaccine) 與 施打輪 (Round):多對多關係。每個施打輪可以使用多種疫苗,每種疫苗可以用於多個施打輪。
施打輪 (Round) 與 接種站 (Station):多對多關係。每個施打輪可以在多個接種站進行,每個接種站可以進行多個施打輪。
登記人 (Person) 與 接種記錄 (VaccinationRecord):一對多關係。每個登記人可以有多次接種記錄。
接種站 (Station) 與 接種記錄 (VaccinationRecord):一對多關係。每個接種站可以有多次接種記錄。
施打輪 (Round) 與 接種記錄 (VaccinationRecord):一對多關係。每個施打輪可以有多次接種記錄。
這樣設計的 ERD 確保了數據庫的完整性和關聯性,同時滿足了 BCNF 的要求。