Итак, я унаследовал некоторые модели Rails 4 и модели баз данных, которые мне нужно добавить.Rails - лучший дизайн базы данных для существующей модели
Модель, называемая mpb_item
, имеет таблицу mpb_items
.
Внутри этой таблицы пунктов есть столбцы, такие как:
role1_start_date, role2_start_date, role3_start_date, role4_start_date
Не идеально, но это то, что она есть. Думаю, они должны были быть в отдельном ролевом столе.
Мне нужно добавить функциональность, чтобы приостановить любую из этих ролей (или все из них).
Я предполагаю, что я могу либо:
К существующей таблице, я могу добавить новый столбец булева для каждого существующего столбца роли. например
role1_suspended
,role2_suspended
и т.д.Создать таблицу с именем
mpb_suspensions
, с 2-мя колонками:mpb_item_id
иrole_name
. Поскольку роли не имеют самих идентификаторов, столбец role_name будет хранить «role1» или «role2» и т. Д. В зависимости от того, какая роль была приостановлена.
В моей View
, мне нужно, чтобы иметь возможность «приостановить» каждую работу, или все из них. Я не уверен, как будет выглядеть код модели, и какой подход будет лучше всего.
Можете ли вы опубликовать модель и ее ассоциации? Что вы подразумеваете под дизайном? Вам нужен RDB с Rails (SQLite3, MySQL, PostgreSQL, с последним самым мощным с большим количеством данных). Когда вы говорите, что наследуете, вы имеете в виду, что вы используете устаревший код или чужой проект? – onebree
По какой-либо причине вы не можете создать подходящую модель ролей (hah) и перенести данные из таблицы «mpb_item» внутри миграции? –
кто-то elses проект его около года или около того. Я не уверен, можно ли вытащить данные из mpb_item, так как тогда будет генерировать новую строку для каждой роли, как это будет работать? Хорошо бы написать «mpb_item.role.suspend». Я не могу отправить код в ту минуту, пока я дома, только сейчас ... – user3437721