В доктрине, какое значение имеют «отношения:», если 2 отношения определены для двух отдельных столбцов с одной и той же таблицей? - PullRequest
0 голосов
/ 11 ноября 2010

Предположим, я определил модель VendorClientLicense так:

VendorClientLicense:
  tableName: vendor_client_licenses
  columns:
    id:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    status:
      type: string(255)
      default: 'pending'
    client_id:
      type: integer(8)
      notnull: true
    vendor_id:
      type: integer(8)
      notnull: true
  relations:
    sfGuardUser:
      class: sfGuardUser
      local: client_id
      foreign: id
      foreignAlias: VendorClientLicenses
      foreignType: many
      owningSide: true
    sfGuardUser:
      class: sfGuardUser
      local: vendor_id
      foreign: id
      foreignAlias: VendorClientLicenses
      foreignType: many
      owningSide: true
  indexes:
    fk_vendor_client_licenses_sf_guard_user1:
      fields: [client_id]
    fk_vendor_client_licenses_sf_guard_user2:
      fields: [vendor_id]
  options:
    charset: utf8
    collate: utf8_unicode_ci

Если вы видите, что два отношения определены с одинаковым именем 'sfGuarduser'; Что я нашел для этого в mysql, так это то, что в сгенерированной базе данных client_id не показывает никакой связи с sfGuardUser , тогда как vendor_id показывает! Если я изменю его на ' sfGuardUser1 ' и ' sfGuardUser2 ', то отобразятся оба отношения! Поэтому я предполагаю, что в конечном итоге это имеет важное значение и не должно быть одинаковым для одной и той же модели. Есть ли другие последствия для этого?

Кроме того, можете ли вы назвать меня хорошим генератором схем, например «mysqlworkbenchdoctrineplugin», который автоматически обрабатывает подобные ситуации?

1 Ответ

0 голосов
/ 11 ноября 2010

Да, вам нужно назвать их по-другому.

Я спросил и получил ту же проблему здесь:

MySQL: два внешних ключа в одной таблице, ссылающиеся на другую таблицу

У меня не было с этим проблем.

Что касается плагина, извините, я не могу вам помочь.

...