2014-12-31 2 views
1

Я разрабатываю базу данных MySQL с некоторыми таблицами для клиники, и мне нужны три разных типа пользователей: админ, медик и пациент.База данных MySQL с несколькими типами пользователей

Что я сделал, чтобы создать таблицу с именем пользователей где его colums являются именно общими полями, разделяемых Админ, медиками и пациентами (есть, конечно, первичный ключ называется id_user шагом Wich авто каждого пользователь добавлено).

Затем я создал три таблицы в отношении конкретных данных для каждого типа пользователя: админ, медика и пациента в Wich У меня есть поле, называемое id_user которым является внешним ключом к id_user в Таблица пользователей.

Когда я попытался установить ограничение внешнего ключа для трех таблиц пользовательского типа, phpMyAdmin не позволяет установить ON DELETE как «SET NULL» (я думаю, это имело бы смысл, потому что, если я удалю пользователя из пользователи таблица, то она должна автоматически установить поля как NULL в медика, админ или пациента таблиц, верно?) и дает мне ошибку «отношение не был добавлен».

Сомнение 1: Что происходит здесь, о котором я не знаю?

Сомнение 2: Должен ли я забыть этот путь, связанных таблиц и просто добавьте отдельные поля для каждого типа пользователя в пользователей таблицы, хотя некоторые пользователи будут иметь некоторые поля, отмеченные как NULL?

Вот изображение ilustrating моей базы данных: http://i363.photobucket.com/albums/oo76/afa_bastard/yes_zpsbad93696.png

ответ

1

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

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

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