我是数据库新手,我想构建一个项目以更好地理解这些主题。 我的问题是:让我们想象一下,我们正在接受向具有多个地址的客户交货的订单。每个客户可以注册 1 到 3 个地址。设计这样的数据库的最佳方法是什么,我应该在客户表中有 3 个不同的字段,如 adrs1、adrs2、adrs3 并将 adrs 插入该字段吗?此外,我应该能够使用所有地址字段查询同一客户。我想不出出路。 从现在开始谢谢。
最佳答案
您想要所谓的“一对多关系”。在像您这样的情况下,这意味着任何一个客户都有多个地址。
您可以使用至少两个数据库表来完成此操作:
Customers
- id (auto incrementing)
- name
- etc...
Addresses
- id (auto incrementing)
- user_id
- details
addresses 表中的 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
关于mysql - 一个客户有多个可能的物理地址,如何设计数据库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682814/