2013-07-25 35 views
1

我直截了當的問題:MVC - 多對多關係 - 他們自己的模型?

如果我有許多一對多在我的數據庫關係(如下表)

User   Role   UserRole 
    user_id  role_id  user_id 
           role_id 

是否應UserRole的這個數據庫連接到時候有自己的型號MVC框架?

在背景:

我重寫了MVC框架我完全自行編寫的Web服務,我決定使用Yii的。我可以選擇從我的數據庫表中生成大量代碼,但我很困惑是否建模多對多關係表(如上面的UserRole)。

在此先感謝!

+0

我不確定這個例子(用戶和角色)是一個多種關係。因爲它更像是每個用戶擁有一個角色,每個角色擁有多個用戶。但是,無論如何,對於多關係,您的關係定義將如下所示:'返回數組( 'roles'=> array(self :: MANY_MANY,'Role','user_role(user_id,role_id)'), ); '''user_role'是連接表,'user_id'和'role_id'是外鍵。 –

+0

所以你的意思是UserRole不應該有它自己的Model,對吧?我是Yii sry的新手 – jelgh

+1

是的。 'UserRole'不需要它自己的模型 –

回答

2

我主要使用代碼優先的方法,並且定義關係表對於多對多關係是可選的。從這個角度來看,我假設MVC框架通常認爲這是可選的。所以,答案將是:

必須UserRole有它自己的模型?號碼

UserRole可以有自己的模型嗎?是。

UserRole應該有自己的模型嗎?如果你的多對多隻包含兩個id,我不會將它添加到模型中。

0

一個多對多的關係,你們的關係的定義是這樣的:return array('roles'=>array(self::MANY_MANY, 'Role', 'user_role(user_id, role_id)'),);user_role是連接表和user_idrole_id爲外鍵。

+0

謝謝。閱讀關於關係AR的更多信息。 – jelgh