2013-10-14 4 views
-1

Я создал базу данных с именем «hmdb», а в этой базе данных две таблицы, названные table1 и table2, используя wamp. Обе таблицы имеют поле идентификатора в качестве первичного ключа. Сначала мой код Java проверяет, присутствует ли идентификатор в таблице1 или нет, если это так (на самом деле это проверка того, является ли он существующим пользователем или нет, если нет, то пациент должен сначала зарегистрироваться), тогда он открывает рамку, где врач заполняет пациентов с его удостоверением личности.Повторяющаяся запись 'ID' для ключевого первичного?

Вызывает озабоченность тот факт, что когда следующий раз врач заполняет информацию о пациентах, он говорит о повторной записи для первичного ключа «ID». Вот мой вопрос: есть ли способ, которым для одного и того же «ID» (первичного ключа) мы можем вставить более одной записи в базу данных. В моем проекте вполне возможно, что один пациент, у которого есть свой уникальный идентификатор, может посещать врача не один раз, и после того, как доктор должен записать свой диагноз, он также имп. для подачи информации в базу данных. есть также одно поле с именем «дата посещения», поэтому я считаю, что я должен изменить первичный ключ для таблицы2 как «дату» (учитывая, что один пациент может посещать врача максимум за один день только), поскольку дата всегда отличается, так что Я могу подавать данные одного и того же идентификатора. для этого у меня есть сомнения, поэтому я хочу задать один вопрос: есть ли две таблицы, чем у нас есть другой первичный ключ для двух таблиц или необходимо иметь такой же первичный ключ?

+0

У вас должен быть третий стол. Если в таблице 1 есть данные о пациентах и ​​пациентах, а в таблице 2 указаны данные врача и врача (кстати, ваше имя базы данных и имена таблиц должны быть более описательными), тогда у вас также должна быть таблица3 для «посещений» или что-то там, где каждое посещение имеет уникальный идентификатор , а поля включают идентификатор пациента, идентификатор врача и, возможно, дополнительную информацию о конкретном посещении. – nhgrif

ответ

1

Похоже, вам нужно создать первичный ключ для посещения. Что-то вроде VISIT_ID. Поскольку пациент может посещать врача более одного раза в день (может быть, не обычный, но, скорее всего), я бы использовал готовый ключ для VISIT_ID. Проверьте autonumbers или авто ключи, которые распространены в большинстве СУБД. Они гарантируют создание уникального ключа для этой таблицы.

В таблице посещений вы также храните внешние ключи для врача и пациента, которые ссылаются на таблицы, содержащие информацию о вашем документе и пациенте, соответственно.

Удачи вам!

+0

Большое вам спасибо, я попробую и подтвержу, если сработает. – Amol

2

Решение здесь состоит в том, чтобы иметь отношения многих и многих. Вам нужна дополнительная таблица с картографией для doctor_id и patient_id.

1

Прежде всего первичным ключом является однозначная идентификация строки. Во-вторых, создайте поле под названием patient_id и используйте его как идентификатор пациента, а не первичный ключ. Вы также можете сделать это внешним ключом из другой таблицы, в которой будут храниться записи пациентов. И внешний ключ должен быть первичным ключом.

Смежные вопросы