При этом используются имена таблиц из вашей модели, и они следуют за ним настолько близко, насколько я мог. Я переименовал menu_item
в dish
, чтобы избежать путаницы.
customer {CST}
KEY {CST}
chef {CHF}
KEY {CHF}
dish {CHF, DSH_NO}
KEY {CHF, DSH_NO}
FK {CHF} REFERENCES chef {CHF}
menu {CHF, MNU_NO}
KEY {CHF, MNU_NO}
FK {CHF} REFERENCES chef {CHF}
menu_course {CHF, MNU_NO, CRS_NO}
KEY {CHF, MNU_NO, CRS_NO}
FK {CHF, MNU_NO} REFERENCES
menu {CHF, MNU_NO}
menu_course_item { CHF
, MNU_NO
, CRS_NO
, CRS_ITM_NO
, DSH_NO
}
KEY {CHF, MNU_NO, CRS_NO, CRS_ITM_NO}
FK1 {CHF, MNU_NO, CRS_NO} REFERENCES
menu_course {CHF, MNU_NO, CRS_NO}
FK2 {CHF, DSH_NO} REFERENCES
dish {CHF, DSH_NO}
booking { CST
, BOOK_NO
, CHF
, MNU_NO
}
KEY {CST, BOOK_NO}
SK {CST, BOOK_NO, CHF, MNU_NO}
FK1 {CST} REFERENCES customer {CST}
FK2 {CHF, MNU_NO} REFERENCES
menu {CHF, MNU_NO}
booking_menu_item { CST
, BOOK_NO
, CHF
, MNU_NO
, CRS_NO
, CRS_ITM_NO
}
KEY {CST, BOOK_NO, CHF, MNU_NO, CRS_NO, CRS_ITM_NO}
FK1 {CST, BOOK_NO, CHF, MNU_NO} REFERENCES
booking {CST, BOOK_NO, CHF, MNU_NO}
FK2 {CHF, MNU_NO, CRS_NO, CRS_ITM_NO} REFERENCES
menu_course_item {CHF, MNU_NO, CRS_NO, CRS_ITM_NO}
Я использовал обобщенный c термин KEY
для PK or AK
. Если по какой-либо причине вам необходимо использовать технические столбцы с одним столбцом (xx_ID
), обязательно добавьте их, как описано в в этом примере ; если нет, все эти KEY
являются PK
.
Примечание:
All attributes (columns) NOT NULL
KEY = PK or AK
PK = Primary Key
AK = Alternate Key (Unique)
SK = Proper Superkey (Unique)
FK = Foreign Key