2012-06-03 1 views
1

Я стараюсь думать о лучшем дизайне для базы данных тренеров и клиентов.Entity relationship - DB Design

Моя первая мысль была такая:

  1. Entity person с общими атрибутами клиентов и инструкторов (имя, дата рождения и т.д.). Клиент может иметь только одного тренера. У одного тренера может быть много клиентов.

  2. Интересно, будет ли создание субъекта user для контроля клиентов и тренеров привилегий, или просто добавить атрибут Role в person

Другой вещью, которую я рассмотрел имел все в едином целом с рекурсивными отношениями ?

Любое предложение?

Спасибо.

+0

Спасибо всем за ваши комментарии, это то, что я придумал: пользователя (UserID, Name, Добролюбов, Имя пользователя, Пароль будет держать адрес здесь тоже ...) UserRole (UserId, Идентификатор роли) Роль (Идентификатор роли, роли) RolePermission (Идентификатор роли, PermissionId) Разрешение (PermissionId, Введено) Client (ClientId, UserId, NextOfKin, ...) Trainer (TrainerId, UserId, уровень, ...) ClientTrainer (ClientId, TrainerId) Прежде чем продолжить, я хотел бы услышать ваше мнение. Благодарю. – Paragon

ответ

0

Тренеры и клиенты с точки зрения сущности, вероятно, имеют разные данные, которые вы хотите отслеживать по каждому из них. У вас все еще есть таблица глобальных пользователей, но тренер и клиент должны иметь отношение 1: 1 к пользовательскому объекту. Затем вы можете иметь таблицу соединений между клиентами и тренерами. Я бы предложил много-много отношений здесь, на случай, если кто-то действительно хочет получить форму и хочет иметь 2 тренера.

+0

Будет ли это отображать глобальную таблицу, скажем, «пользователь» и вторую таблицу с атрибутами клиентов и тренеров и их роль? Благодарю. – Paragon

+0

Это зависит от того, насколько вы хотите быть конкретным. Если данные, которые вы хотите отслеживать, значительно отличаются от основных пользовательских данных, я бы рекомендовал две разные таблицы. Даже если кто-то является тренером и клиентом, у вас все еще нет избыточности, поскольку у учебного объекта должны быть специальные данные для тренера, тогда как клиент - данные, специфичные для клиента, с любыми глобальными данными, представленными в вашей пользовательской таблице. – Nick

+0

Спасибо, Ник. Я пошел на две разные таблицы, позволяющие в будущем при необходимости добавлять более конкретные данные. И я буду использовать таблицу соединений между клиентом и тренером, чтобы сохранить дату, когда клиент начал обучение с новым тренером. – Paragon

0

Могут ли тренеры иметь тренеры? Например, тренер, специализирующийся на триатлонах, может быть слабым пловцом и иметь тренера по плаванию.

Мне нравится Role сам дизайн.

+0

Да, тренеры могут иметь тренера, который мог бы быть сам или другой, позволяя тренеру создавать программу упражнений для себя или для других тренеров. Спасибо за ваш вклад. – Paragon

+0

Тогда вам определенно нужен дизайн Person-Role, который является иерархией. – duffymo

+0

Спасибо duffymo – Paragon

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

  • Нет связанных вопросов^_^