выпечка с использованием PHPcake правильного именования баз данных - PullRequest
0 голосов
/ 27 сентября 2010

Просто включитесь в разработку MVC и реализацию тортов, так что я путаюсь с именами таблиц и ссылками на идентификаторы.

У меня есть таблица с именем Assets и значением sotered в Assets - поле asset_status_id, которое должноссылка на таблицу Asset_Statuses. Эта таблица представляет собой простой список возможных состояний, в которых активы могут находиться в любой момент времени (активный, неактивный, проданный, обслуживание и т. д.). Я решил использовать таблицу для этого списка в качестве:Мне нужно будет добавить больше опций через некоторое время. б) У меня есть поле 'sequence' в этой таблице, чтобы я мог контролировать порядок сортировки, в котором они будут отображаться при любом выпадающем меню.

Похоже, "Cake Bake"чтобы увидеть таблицу с именем Asset_Statuses, как указание на то, что она существует для описания связи между таблицей Assets и несуществующей таблицей Status.Теперь я знаю, что вы думаете, просто назовите стол Статуи, верно?Но у меня есть одна из таблиц «Статус», которую я хотел бы использовать, например Domain_Status, которые, конечно, не будут использовать одни и те же списки состояний.

Так какое же соглашение об именах я должен использовать, чтобы все это работало легко?

Ответы [ 2 ]

0 голосов
/ 29 сентября 2010

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

тогда у вашего объединения просто есть условие.

class Asset extends AppModel{
    var $belongsTo = array(
       'Status' => array(
          'className' => 'Status' // not needed with the proper conventions and not in a plugin,
          'conditions' => array('Status.model' => 'Asset')
       )
    );
}

Вы можете использовать поведение для автоматизации настройки поля модели в beforeSave

Как примечание, все таблицы должны быть в нижнем регистре, а не в смешном регистре, который вы используете. Это может быть причиной того, что вещи работают не так, как должны.

0 голосов
/ 27 сентября 2010

Я не уверен, что во множественном числе статуса актива указано состояние актива (вы должны проверить), а также в таблице должен быть строчный регистр, поэтому asset_states, а не Asset_StatesНо вы можете использовать совершенно другую таблицу в своих моделях.Проверьте это .Итак, создайте модель, назовите ее как хотите.Т.е. AssetState и поставь:

var $useTable = 'asset_states';

и я думаю у тебя проблем не будет.Просто убедитесь, что в вашем отношении hasMany указываете правильное имя класса, например:

var $belongsTo = array(
   'AssetState' => array(
      'className' => 'AssetState' //Most important
   )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...