Что такое акты и отношения в учении? - PullRequest
1 голос
/ 18 февраля 2010

Я в полном недоумении со следующим schema.yml:

JobeetCategory:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true, unique: true }

JobeetJob:
  actAs: { Timestampable: ~ }
  columns:
    category_id:  { type: integer, notnull: true }
    type:         { type: string(255) }
    company:      { type: string(255), notnull: true }
    logo:         { type: string(255) }
    url:          { type: string(255) }
    position:     { type: string(255), notnull: true }
    location:     { type: string(255), notnull: true }
    description:  { type: string(4000), notnull: true }
    how_to_apply: { type: string(4000), notnull: true }
    token:        { type: string(255), notnull: true, unique: true }
    is_public:    { type: boolean, notnull: true, default: 1 }
    is_activated: { type: boolean, notnull: true, default: 0 }
    email:        { type: string(255), notnull: true }
    expires_at:   { type: timestamp, notnull: true }
  relations:
    JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs } 

JobeetAffiliate:
  actAs: { Timestampable: ~ }
  columns:
    url:       { type: string(255), notnull: true }
    email:     { type: string(255), notnull: true, unique: true }
    token:     { type: string(255), notnull: true }
    is_active: { type: boolean, notnull: true, default: 0 }
  relations:
    JobeetCategories:
      class: JobeetCategory
      refClass: JobeetCategoryAffiliate
      local: affiliate_id
      foreign: category_id
      foreignAlias: JobeetAffiliates

JobeetCategoryAffiliate:
  columns:
    category_id:  { type: integer, primary: true }
    affiliate_id: { type: integer, primary: true }
  relations:
    JobeetCategory:  { onDelete: CASCADE, local: category_id, foreign: id }
    JobeetAffiliate: { onDelete: CASCADE, local: affiliate_id, foreign: id }

А как это правильно определить?

1 Ответ

4 голосов
/ 18 февраля 2010

Коротко и сладко:

Поведения ('actAs'), как следует из названия, способ определения поведения (sp - извините, британский ;-)) модели. Я бы сказал, что наиболее часто используемыми являются «Timestampable» (который добавляет созданные и обновленные поля в вашу таблицу и обновляет их автоматически) и «SoftDelete» (который добавляет столбец dele_at, с меткой времени, если запись «удалена» вместо фактически удаление записи).

Подробнее здесь - http://www.doctrine -project.org / документация / руководство / 1_2 / ru / поведение

Отношения - связь моделей с другими моделями. Например, сообщение в блоге, вероятно, будет иметь много комментариев - отношение один-ко-многим между сообщением и комментариями. В приведенном выше примере Jobeet задание относится к категории.

и снова, больше информации здесь - http://www.doctrine -project.org / Документация / Руководство / 1_2 / ru / Defining-models # Связи

Но, как прокомментировал @Marko выше, начните с документации :-) Страница из документов Symfony, из которой вы получили схему, даже содержит изображение, объясняющее отношения между таблицами. ..: -)

...