データベースのセットアップを想像してください。ここで、x個の顧客はy個の注文をすることができます。 通常、すべての顧客は1組の自動増分注文IDを共有します。カスタマーIDごとに個別の注文IDを持つにはどうすればいいですか?
- 顧客Aの最初の順序は、顧客BのオーダーID#1
- 最初の注文は、注文番号#2を有しています。
私は、顧客ごとに個別の注文IDを設定したいと考えています。他の多くの顧客が発注したIDに基づいて顧客が見ることができないことは重要です。顧客Aの
- 最初の注文は、顧客AのオーダーID#1
- 二次は、顧客BのオーダーID#2
- 最初の順序は、今注文番号#1
を有していました私が見ることができる唯一の方法は、顧客の注文番号の最大値を手動で選択し、+1を加えて手動で挿入することです。
select max(customer_order_id) from orders where customer_id = X
どのようにデータの整合性と正規化の意味でこのアプローチを作成できますか?顧客の個々の注文IDに何らかの自動インクリメントがあるようなものですか?
create table customers
(
id int auto_increment primary key,
name varchar(255)
);
create table orders
(
id int auto_increment primary key,
customer_id int
customer_order_id int
foo varchar
bar varchar
);
ええ、返信いただきありがとうございます。私は質問が残っている:どのように適切にmax()を選択せずにphpで+1を追加し、それを挿入せずに、顧客ごとに別々のシーケンスを増やすのですか? – user1201008
お客様のレコードで「最後の注文シーケンス」を追跡できますが、maxを選択して追加することをお勧めします。 –
大丈夫、ありがとう! – user1201008