Схема БД для системы бронирования фитнес-класса - PullRequest
1 голос
/ 12 октября 2010

Мне нужна схема для занятий фитнесом.

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

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

Я надеюсь получить хорошие идеи.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 14 октября 2010

* Не гуру mySql, я обычно работаю с MS SQL, но думаю, вы поймете эту идею. Возможно, вам придется немного покопаться в документации mySql, чтобы найти подходящие типы данных, которые соответствуют предложенным мной. Кроме того, я дал только краткое объяснение некоторых типов, чтобы уточнить, для чего они нужны, поскольку это mySql, а не MS SQL.

Class_Enrollment - хранит классы, на которые каждый студент зарегистрирован для

Class_Enrollment_ID INT IDENTITY PK ("identity is made specifically
    to serve as an id and it's a field that the system will manage 
    on its own.  It automatically gets updated when a new record is
    created.  I would try to find something similar in mySql")
Class_ID INT FK
Student_ID INT FK
Date_Time smalldatetime ("smalldatetime just stores the date as a
    smaller range of years than datetime + time up to minutes")
  • поместите уникальный индекс ограничения на class_id и student_id для предотвращения дублирования

Класс - хранит ваши классы

Class_ID INT IDENTITY PK
Name VARCHAR('size') UNIQUE CONSTRAINT INDEX ("UNIQUE CONSTRAINT INDEX is
    like a PK, but you can have more than one in a table")
Max_Enrollment INT ("unless you have a different max for different sessions
    of the same class, then you only need to define max enrollment once per
    class, so it belongs in the class table, not the Class_Enrollment table")

Студент - хранит ваших учеников

Student_ID INT IDENTITY PK
First_Name VARCHAR('size')
Last_Name VARCHAR('size')
Date_of_Birth smalldatetime ("smalldatetime can store just the date,
    will automatically put 0's for the time, works fine")
  • поместите уникальный индекс ограничения на имя, имя и дату рождения, чтобы исключить дубликаты (у вас может быть два Джона Смита, но два точно таких же дня рождения в одной базе данных маловероятны, если только это не очень большая база данных) В противном случае рассмотрите возможность использования имени, фамилии и телефона в качестве уникального ограничения)
1 голос
/ 12 октября 2010
Student: ID, Name, ...
Class: ID, Name, MaxStudents, ...
Student_in_Class: STUDENT_ID, CLASS_ID, DATE_ENROLL
...