Система назначения доступа - PullRequest
2 голосов
/ 02 апреля 2012

Я пытаюсь создать систему приема у доктора.На данный момент у меня есть четыре таблицы: -

 Patient:-         Doctor:-           Appointment:-             Availability:-
 patientID         doctorName         time                      time
 name              room               date                      doctorName
 address                              patientID
                                      doctorName 

Все отношения 1 к Мани, с множеством сторон, выходящих из таблицы встреч.

Пациент: - Таблица с данными пациента

Доктор: - Таблица данных о врачах

Назначение: - Таблица для встреч

Наличие: - Таблица, в которой хранятся временные интервалы, доступные каждому врачу

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

Во-вторых, если бы я изменил на DoctorID во всех таблицах вместо doctorName, я бы все же легко мог получить доступ к doctorName, если и когда потребуется?Это то, что смущает меня, может быть, я просто слишком обдумываю эти вещи.

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

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

Большое спасибо,

1 Ответ

3 голосов
/ 02 апреля 2012

Вы действительно должны использовать doctorsid вместо doctorsName. Потому что, если вы планируете join эти tables вместе, то гораздо лучше join в дюймах, чем в varchars.

И еще один вопрос, если вы все еще принимаете решение varchar, что произойдет, если врач изменит свое имя (брак или около того). Вам нужно update столы с недвижимостью и стол врача. Если вы собираетесь использовать int, вам просто нужно поменять его в одном месте (стол врача)

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

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

 Patient:-         Doctor:-           Appointment:-             Availability:-
 patientID         DoctorId           AppointmentTime           AvailabilityTime
 PatientName       room               AppointmentDate           DoctorId
 address           doctorName         patientID
                                      DoctorId
...