Laravel - 两次与相同的数据透视表相关

时间:2014-09-15 18:24:29

标签: php mysql laravel-4

我目前正在一个网站上工作,我决定将其从CodeIgniter转移到Laravel主要是因为RESTful架构,因为我需要使用API​​连接另一个公司网站。

我遇到的问题是:

我有一个用户,用户可以有两个地址:结算或发货。但是,用户也可以没有分配的地址。所以基本上这就是数据库中的样子:

-User
--id
--name, phone, etc...

-UserAddress
--id
--user_id
--billing_address_id
--shipping_address_id

-Address
--id
--street, city, state, etc...

因此,地址通过计费或送货地址ID两次链接到UserAddress,那么Laravel 4中这三个表之间的关系是什么?我对Laravel和一般的编码都很新,所以我想知道如何正确设置这种关系的一些指示,考虑到这种关系也会发生在其他一些表和地址上。

注意:用户和地址中没有外键,您可以将它们视为基线​​表。任何需要用户链接到User表的东西,以及需要地址的任何东西都会在Address表中存储该地址。

1 个答案:

答案 0 :(得分:0)

好吧,在等了整整一个月的答案之后,我最终不得不自己搞清楚了。

我最后刚刚进入地址表并添加了一个address_type字段,这使我可以指定是否为结算,发货或两者。所以我的数据透视表只改为三个id,user_id和address_id字段,然后我在我的控制器中使用逻辑来处理读取字段并找出地址类型是什么并采取相应的行动。

总而言之,它最终看起来像这样:

-User
--id
--username
--password
--email
--etc...

-User_pvt_address
--id
--user_id
--address_id

-Address
--id
--address_1
--address_2
--city
--state
--country_id
--postal_code
--address_type

-Address_Type
--id
--type
相关问题