У меня есть база данных, которая выглядит примерно так:
+---------+
| doctors |
|---------+------------------------------+
| | | +------------+
| | | | exams |
+---------+ | |------------|
+--++----+ | |
+-+ has +------+ |
| +---+----+ | |
| | | |
| | +------------+
+--------+ | |
+-------+| has +------+ | |
| +--------+ | | +------------+
| | | |
| | | |
+------+---+ +-----+-+-----+ +---++-----------+
| patients | |sessions | |payements |
|----------| |-------------| |----------------|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+----------+ +-------------+ +----------------+
У пациентов есть сеансы (от одного до многих), поэтому сеансы будут иметь первичный ключ пациента.
Сессия может состоять из нескольких экзаменов (от многих ко многим), которые проводятся врачами, поэтому потребуется таблица соединений.
Давайте назовем это sessionexams(sessionID, examID, doctorID)
Теперь вопрос в том, какой способ хранения платежей, оплачиваемых за сессионные экзамены, является лучшим (каждый экзамен в сеансе имеет свои собственные платежи), который может охватывать несколько раз.
По сути, пациент должен платить за каждый экзамен, который он проводил на сессии индивидуально, и он может делать это в течение n раз, каждый из которых регистрируется.
Я думал о связи между таблицей платежей и сеансами экзаменов в таблице соединений,
в основном что-то вроде платежей (id, sessionID, examID, сумма), но это просто не кажется правильным.
Я здесь не прав?