Laravel — Относитесь к одной и той же сводной таблице дважды

В настоящее время я работаю над сайтом и решил перенести его с 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...

Итак, Address дважды связывается с UserAddress с помощью идентификатора адреса выставления счета или доставки, так какова связь между этими тремя таблицами в Laravel 4? Я довольно плохо знаком с Laravel и программированием в целом, поэтому я хотел бы получить несколько советов о том, как правильно настроить такие отношения, учитывая, что эти отношения также случаются с некоторыми другими таблицами и Address.

Примечание. Пользователь и Адрес не содержат внешних ключей, их можно рассматривать как базовые таблицы. Все, для чего нужен пользователь, ссылается на таблицу User, а также все, что требует адреса, хранит этот адрес в таблице Address.

0

Решение

Ну, в итоге мне пришлось самому в этом разобраться, после ожидания ответа целый месяц.

В конце концов я только что вошел в таблицу адресов и добавил поле address_type, которое позволило мне указать, было ли это биллинг, доставка или и то, и другое. Таким образом, моя сводная таблица изменилась на три поля id, user_id и address_id, затем я использовал логику в моем контроллере для обработки чтения полей и определения типа адреса и соответствующего действия.

В итоге все выглядело примерно так:

-пользователь
--Я бы
--username
--пароль
--Эл. адрес
--так далее...

-User_pvt_address
--Я бы
--Идентификатор пользователя
--address_id

-Адрес
--Я бы
--адрес 1
--Адрес 2
--город
--государство
--country_id
--Почтовый индекс
--тип адреса

-Тип адреса
--Я бы
--тип
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]