在学说中,如果为两个具有相同表格的单独列定义了2个关系,那么“关系:”会产生什么影响?

时间:2010-11-11 09:39:49

标签: symfony1 doctrine

假设我已经定义了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 :(得分:0)

是的,您需要以不同的方式命名。

我问过&收到同样的问题:

MySQL: Two foreign keys in one table referring to another table

我没有遇到任何问题。

关于插件,抱歉无法帮助你。