0

私は、約 30 の異なるサービスを提供する新しいビジネスを始めています。MySQL と PHP を使用して、30 のサービスすべてに「簡単にアクセス」するための最良の方法を見つけようとしています。この時点で、データベースをセットアップしていて、正しい方向に進んでいることを確認したいと考えています。これは私がこれまでに思いついたコンセプトです:

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 つのサービスを表示するにはどうすればよいですか? 簡単にアクセスできるようにすべてのテーブルを接続する最良の方法は何ですか?

どんなアドバイスでも大歓迎です!

4

2 に答える 2

0

リレーショナルデータベースには通常、顧客のようなテーブルとサービスのようなテーブルの間にテーブルがあります。それをcustomer_ordered_servicesと呼んでください

そしてそれは顧客と彼らが望むサービスへの鍵を握っているだけです

あなたの例では、この中央のテーブルに3つの行があり、必要な3つのサービスを反映しています。

customerId 1, serviceId 1
customerId 1, serviceId 2
customerId 1, serviceId 3
于 2013-01-13T22:48:23.790 に答える
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
于 2013-01-13T22:50:00.357 に答える