Как я могу реплицировать базовую модель данных, используя традиционную реляционную базу данных? - PullRequest
0 голосов
/ 13 октября 2011

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

enter image description here

1 Ответ

1 голос
/ 13 октября 2011

Прежде всего вам необходимо создать таблицы для каждой из сущностей и их атрибутов (обратите внимание, я добавил «id» в каждую из таблиц для отношений):

  1. Рутина (имя, метка времени, идентификатор)
  2. Упражнение - для меня это выглядит как дубликат, так что оставьте его только здесь (muscleGroup, musclePicture, name, timeStamp, id)
  3. Session (timeStamp, id)
  4. Набор (повторений, отметка времени, единица измерения, вес, идентификатор)

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

  1. RoutineExercises (рутина_ид, упражнение_ид)
  2. SessionExercises (session_id, упражнение_id)
  3. ExerciseSets (упражнение_id, set_id)

Вот и все! Теперь, если вам нужно добавить упражнение в рутину, вы просто:

  1. Добавить запись в таблицу упражнений
  2. Установите связь, добавив кортеж в таблицу RoutineExercises, где рутинный_идентификатор - это идентификатор вашей рутины, а тренировочный_идентификатор - это идентификатор вновь созданной записи в таблице упражнений.

Это будет справедливо для всех остальных отношений.

ПРИМЕЧАНИЕ: Ваша базовая модель данных имеет отношения «один ко многим» и «многие ко многим». Если вы хотите принудительно установить, что отношение является «один ко многим» (например, в упражнении может быть только 1 подпрограмма), вам нужно будет указать «exerc_id» в качестве индекса для таблицы RoutineExercises. Если вы хотите, чтобы разрешались отношения «многие ко многим» (т. Е. Каждому упражнению разрешено иметь несколько подпрограмм), то в качестве индекса укажите кортеж (рутинный_идентификатор, упражнение_ид.)

...