多服务的MySQL数据库设置

时间:2013-01-13 22:45:13

标签: php mysql sql database database-design

我正在开展一项新业务,提供约30种不同的服务。我试图找出使用MySQL& amp;&amp ;;的所有30个服务“轻松访问”的最佳方式。 PHP。此时,我正在设置我的数据库,我想确保我朝着正确的方向前进。这是我到目前为止提出的概念:

Create Table customers (customer_id)
Create Table orders (order_id, customer_id, product_id)
Create Table logo_design (logo_id, customer_id, order_id, product_id)
Create Table web_design (web_id, customer_id, order_id, product_id)

所以我的想法是,对于每个新客户,他们将被分配一个唯一的客户ID。对于他们购买的每项服务,此ID将与他们保持一致。我遇到困难的地方就是说客户订购了3种不同的服务。如何显示他们购买的3项服务,而无需进行百万次不同的循环或验证检查?真的是连接所有表格以便于访问的最佳方法是什么?

非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

关系数据库通常在像customer这样的表和像服务这样的表之间有一个表。称之为customer_ordered_services,也许是

它只是客户和他们想要的服务的关键

在您的示例中,此中间表中将有三行以反映他们想要的三种服务

customerId 1, serviceId 1
customerId 1, serviceId 2
customerId 1, serviceId 3

答案 1 :(得分:0)

听起来像您正在寻找加入表格并按特定客户ID过滤。看一下这个例子来帮助您入门:

SELECT *
FROM   customers AS c
       INNER JOIN orders AS o
           ON c.customer_id = o.customer_id
WHERE c.customer_id = CustomerIDGoesHere

您可以加入任意数量的表格

FROM table1
     JOIN table2
         ON table1.column = table2.column
     JOIN table3
         ON table2.column = table3.column
     JOIN table4
         ON table1.column = table4.column