我是数据库新手,我想建立一个项目来更好地理解这些主题。我的问题是:假设我们正在接受订单以交付给具有多个地址的客户。每个客户可能有 1 到 3 个注册地址。设计这样的数据库的最佳方法是什么,我是否应该在客户表中有 3 个不同的字段,如 adrs1、adrs2、adrs3 并将 adrs 推入该字段?此外,我应该能够使用所有地址字段查询同一客户。我想不出出路。从现在开始感谢。
问问题
78 次
3 回答
3
您想要所谓的“一对多关系”。在像您这样的场景中,这意味着任何一个客户都有很多地址。
您可以使用至少两个数据库表来完成此操作:
Customers
- id (auto incrementing)
- name
- etc...
Addresses
- id (auto incrementing)
- user_id
- details
地址表中的 user_id 列是对客户的引用。设置此架构后,您可以根据需要使用联接来查询数据。
查询可能如下所示:(在 MySQL 中)
SELECT * FROM customers
RIGHT JOIN addresses ON addresses.user_id = customers.id
注意:此查询仅选择实际存储了地址的客户。
进一步阅读:http ://www.techopedia.com/definition/25122/one-to-many-relationship
于 2013-07-16T17:14:44.290 回答
0
一种简单的方法是设置客户和地址表。将地址表中的所有地址字段和客户表中客户的所有人口统计字段保留:
CUSTOMER TABLE
id
field1
field2
etc..
ADDRESS TABLE
id
customer_id
type //billing, shipping, etc.
street1
street2
city
etc...
然后,您可以在查询中加入这两个表,然后在给定时间选择您需要的地址类型。您还可能在表中的 customer_id 和类型字段上有一个唯一索引。
于 2013-07-16T17:11:02.900 回答