2013-07-09 5 views
0

Сначала я подумал, что было бы неплохо иметь таблицу addresses, чтобы отслеживать адреса биллинга и доставки пользователей ... они, конечно, будут использоваться для заказов и т. Д.MySQL: управление адресами для выставления счетов и доставки

Но как только я начал кодирование, я заметил, что мне нужно будет ссылаться и отслеживать те id, когда пользователь их обновляет, а для параметров «Доставка совпадает с моим платежным адресом», я бы то необходимо обновить ссылку на shipping_id как billing_id ...

Надеюсь, что я говорю, имеет смысл ...

Теперь я думаю, что в моей таблице user я должен иметь как биллинговые, так и отгрузочные поля или создать таблицу user_details.

Фактический вопрос: какой предпочтительный (или предложенный) метод (ы) хранения и управления адресами фактурирования и доставки пользователей.

+0

так, что собственно вопрос? –

+0

Обновлен мой вопрос. – dcolumbus

ответ

2

Почему бы не сделать таблицу адресов, которая содержит флаг, что указывает на тип адреса

id | user_id | street | number | zip | city | address_type | valid_since | valid_until 
+0

Ну, это то, что я делаю уже, и я просто чувствую, что существует слишком много способов испортить ссылку. – dcolumbus

+1

address_type с 1 (отправка) или 2 (биллинг) будет более эффективным? –

+0

@ Дагон: Да, было бы. –

0

Вы можете сделать таблицу адресов для всех, который содержит все данные адреса плюс идентификатор пользователя, чтобы они могли быть привязанным к пользователю. Это позволяет любому пользователю иметь столько адресов, сколько они хотят. Затем в таблице users вы можете указать поле для shipping_address и billing_address, которое принимает идентификатор для ссылки в таблице адресов. Не забудьте использовать внешние ключи, где это необходимо.

Если вы хотите простой способ получить доступ к детали пользователя с полезной информацией адреса через код, вы можете создать хранимую процедуру для извлечения информации на оба таблицах

+0

Это то, что у меня есть. Мне просто не нравится тот факт, что выставление счетов и отправка не статичны ... это всего лишь куча 'id'. Каким будет лучший способ справиться с параметром «такой же, как адрес биллинга», который вы часто видите на веб-сайтах? – dcolumbus

Смежные вопросы