我有一个类似这样的数据库:
+---------+
| doctors |
|---------+------------------------------+
| | | +------------+
| | | | exams |
+---------+ | |------------|
+--++----+ | |
+-+ has +------+ |
| +---+----+ | |
| | | |
| | +------------+
+--------+ | |
+-------+| has +------+ | |
| +--------+ | | +------------+
| | | |
| | | |
+------+---+ +-----+-+-----+ +---++-----------+
| patients | |sessions | |payements |
|----------| |-------------| |----------------|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+----------+ +-------------+ +----------------+
患者有会话(一对多),因此会话将有患者的主要密钥。
会话可以有多个考试(多对多),由医生执行,因此需要联结表。
我们称之为sessionexams(sessionID, examID, doctorID)
现在问题是哪种更好的方式来存储付款,这些付款是为会话考试支付的(会话中的每个考试都有自己的付款),可以跨越多次。
基本上,患者必须为他在一个疗程中单独进行的每次检查付费,并且他可以在n次过程中完成这项检查,每次检查都会记录下来。
我在考虑与联结表sessionexams的支付表关系, 基本上像支付(id,sessionID,examID,金额),但它似乎并不正确。 我错了吗?