Я всего лишь неделю изучаю Rails (4) и создаю простое приложение. У меня четыре таблицы.Какой лучший дизайн базы данных?
1) Львов 2) PANTHERS 3) Тренеры 4) Игрушки
Игрушка может принадлежать либо лев или пантера. Игрушка будет принадлежать только одному коту за раз (так что лучше всего сделать это полиморфным. Следующая часть - это то, где я становлюсь неуверенным).
Тренер может тренировать льва, пантеры или и то, и другое.
Лев или пантера могут иметь более одного тренера.
Я сделал таблицу полиморфных тренеров, но при посеве каждого тренера с первым львом затем пантерой, я увидел, что пантеры отменяют лев. Кажется, мне нужно будет создать еще один экземпляр каждого тренера, чтобы дать им вторую кошку, которая также даст тому же тренеру второй идентификатор, которого я не хочу. Может быть, дизайн many_to_many между Lions/Trainers и Panthers/Trainers будет лучше? Мои вопросы об этом, как только я создаю таблицу соединений для каждого many_to_many, когда я хочу перечислить кошек, которые тренируют каждый тренер, потребуются ли две петли, одна через lions_trainers, а также panthers_trainers? И это даже лучший подход? По общему признанию, это было бы легче, если бы Львы и Пантеры были в одной таблице, но это не в назначении. Предложения/ввод оценены :)
Почему у вас есть отдельные столы для пантеры против львов? Подумайте об этом внимательно: эти типы кошек могут быть разными в реальности, но для целей вашего приложения, разве они оба не просто обучают предметы? Как только вы разрешите этот вопрос, много умственной гимнастики, которую вы делаете, выходит прямо из окна. – MarsAtomic
lol, я полностью согласен, что они должны быть в одном столе! но это задание на домашнее задание, а задание указано, что они находятся в двух разных таблицах (с целью использования полиморфизма для игрушки). Я тот, кто решил выйти за борт и решил, что у каждой кошки может быть более одного тренера. вещи были сложными с тех пор :( – HolyMoly
, может быть, я просто откинусь назад и придерживаюсь заданий, но все равно буду интересоваться любыми предложениями о том, как получить то, что я изначально планировал выполнить. :) – HolyMoly