2014-01-03 7 views
0

Я создал ERD, который приведен ниже. Мне нужно создать таблицы, используя приведенную ниже ERD, но мне нужно сначала нормализовать.Создание таблиц с использованием ERD и нормализации

Это как это происходит, если я нормализуют таблицу практикующему, приведенной в ниже ERD (насколько я понимаю):

  practitionerID, DoctorID-> PatientID 

      PractitionerID-> patientID 

Так что, если я иду, чтобы нормализовать это, я в конечном итоге с таким же первичным ключ для обеих таблиц. Это не подходит для нормализации, поэтому я действительно смущен.

Поскольку отношения между практикующим и пациентом много для многих, таблица будет иметь дублированные данные. Это ERD:

enter image description here

Как нормализовать это?

+0

Как многие отношения ко многим относятся здесь? –

+0

Действительно ли это ERD? https://www.youtube.com/watch?v=c0_9Y8QAstg – Lealo

ответ

2

Прежде всего.

Что такое нормализация.

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

Резервирование данных происходит в системах баз данных, которые имеют поле, которое повторяется в двух или более таблицах. Например, когда данные клиента дублируются и прикрепляются к каждому купленному продукту, избыточность данных является известным источником несогласованности, поскольку клиент может появляться с разными значениями для данного атрибута.

Ваше решение

Теперь у вас есть две основные таблицы, является врачи и пациенты, и, безусловно, они имеют отношения многие ко многим между друг другом.

Когда вы делаете эти две таблицы и храните их в MySQL Workbench или в SQLYog, просматривая их отношения, они будут давать три таблицы, как показано в вашем вопросе, например, в таблице практиков.

Теперь это ваше решение.

Вы сначала сделаете настольный врач.

Во-вторых, вы делаете стол пациента.

Теперь, когда вы вставляете информацию, информация будет вставлена ​​в их соответствующие таблицы. среднюю информацию о пациенте в таблице пациентов и информацию врача в таблицу врачей.

Но когда вы назначаете другого пациента другому врачу, их первичный ключ будет вставлен в таблицу практиков.

Итак, когда вам нужна информация о любом пациенте, вы можете использовать таблицу практиков, как? из идентификатора пациента получают весь список врачей и то же, что и у врачей.

Когда вы держите больше информации, такой как история пациентов, терпите другую информацию, тогда вам нужно нарисовать больше таблиц.

Итак, с этой точки зрения, данные не повторяются, и это нормализация.

Чтобы сделать вашу базу данных более безопасной и последовательной, вам нужно добавить UNIQUE KEY в свой доктор и таблицу пациентов, указав имя пользователя или адрес электронной почты уникальным, если кто-нибудь зарегистрируется, а затем второй раз не может.

Надеюсь, это поможет вам.

Если вам нужно узнать больше, тогда сообщите мне.

Thanks

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