与联结表数据库设计的关系

时间:2012-03-08 23:03:57

标签: mysql database database-design relational-database

我有一个类似这样的数据库:

             +---------+
             | doctors |
             |---------+------------------------------+
             |         |                              |            +------------+
             |         |                              |            | exams      |
             +---------+                              |            |------------|
                                                   +--++----+      |            |
                                                 +-+ has    +------+            |
                                                 | +---+----+      |            |
                                                 |     |           |            |
                                                 |     |           +------------+
                               +--------+        |     |
                      +-------+| has    +------+ |     |
                      |        +--------+      | |     +------------+
                      |                        | |                  |
                      |                        | |                  |
               +------+---+              +-----+-+-----+        +---++-----------+
               | patients |              |sessions     |        |payements       |
               |----------|              |-------------|        |----------------|
               |          |              |             |        |                |
               |          |              |             |        |                |
               |          |              |             |        |                |
               |          |              |             |        |                |
               +----------+              +-------------+        +----------------+

患者有会话(一对多),因此会话将有患者的主要密钥。

会话可以有多个考试(多对多),由医生执行,因此需要联结表。

我们称之为sessionexams(sessionID, examID, doctorID)

现在问题是哪种更好的方式来存储付款,这些付款是为会话考试支付的(会话中的每个考试都有自己的付款),可以跨越多次。

基本上,患者必须为他在一个疗程中单独进行的每次检查付费,并且他可以在n次过程中完成这项检查,每次检查都会记录下来。

我在考虑与联结表sessionexams的支付表关系, 基本上像支付(id,sessionID,examID,金额),但它似乎并不正确。 我错了吗?

0 个答案:

没有答案