Отношения сущностей

У меня есть некоторые проблемы с установкой отношения между двумя типами таблиц. У меня есть таблица под названием «Пациент» (в которой содержатся некоторые данные об идентификаторе пациента, адресе, имени и т. qstmt", VisitDate, NextVisitDate и т. д.)

Теперь у каждого пациента может быть несколько посещений с разными датами, и на каждую дату у нас может быть более одного пациента, например: дата: 13.09.2012 может включать много пациентов пациент: даты посещений: 13.09.2012, 09 -09-2012, 07-03-2012

где я должен положить внешний ключ ..

Примечание: несмотря на то, что для каждого посещения существует переменная ID, и это инкрементная переменная. но на самом деле, когда я ищу в своей программе, я ищу по дате, поэтому и поправьте меня, если я ошибаюсь, могу ли я сделать поле «дата», тип которого наверняка является датой, или это должен быть составной ключ, или я могу' не рассматривать дату как ключ, потому что она не уникальна, потому что у многих пациентов может быть одна и та же дата посещения"


person BDeveloper    schedule 13.09.2012    source источник
comment
Должен ли я создать другую таблицу, назовем ее «PatientVisits», которая содержит идентификатор пациента и дату посещения.   -  person BDeveloper    schedule 13.09.2012


Ответы (1)


Для меня это выглядит как обычное отношение внешнего ключа «один ко многим». Таблица Visits имеет внешний ключ PatientId для пациента, который участвует в посещении, а VisitDate является только атрибутом в таблице Visits и не является частью первичного ключа. Он также не имеет уникального индекса, потому что в данный день может быть много посещений, даже у одного и того же пациента может быть два посещения в один и тот же день. Если вы хотите запретить это, вы можете создать составной индекс уникального ключа для PatientId и VisitDate.

Затем вы можете создать SQL-запрос к таблице Visits по определенному VisitDate или диапазону дат и получить все посещения на эту дату. С помощью внешнего ключа посещения PatientId вы можете присоединиться к таблице Patients и получить данные о пациенте посещения.

person Slauma    schedule 13.09.2012