2010-11-11 74 views
0

假設我已經定義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'這樣自動處理情況的好架構生成器嗎?

回答

0

是的,你需要以不同的方式命名它們。

我問收到此相同的問題&:

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

我還沒有與此有關的任何問題。

關於插件,抱歉不能幫你。

+0

感謝您的回答。在通過你的鏈接後,我的腦海裏出現了另一個問題。在這種情況下,「外國舞蹈」也需要有不同的定義。想想如果我使用別名:'$ user-> getVendorClientLicenses()',它將如何決定選擇哪個列作爲參考(client_id或vendor_id)! – med 2010-11-13 11:34:52

+0

@medhad:完全......你可以根據你需要如何引用兩端關係來定義它們。 – Tom 2010-11-13 17:40:21

相關問題