卸売りオンライン T シャツ ストアのデータベース スキーマを作成するのに助けが必要です
-
21-09-2019 - |
質問
現在、Tシャツの卸売りオンラインショップを運営しています。私は固定数量と価格でこれを実行しましたが、問題なく機能しています。次に、可変の数量と価格に対してこれを行う必要があります。
これに基づいてデザインを作成しようとしています 参考サイト.
私が作成した基本的なテーブルは次のとおりです。
CREATE TABLE attribute (
attribute_id int(11) NOT NULL auto_increment,
name varchar(100) NOT NULL,
PRIMARY KEY (attribute_id)
);
CREATE TABLE attribute_value (
attribute_value_id int(11) NOT NULL auto_increment,
attribute_id int(11) NOT NULL,
value varchar(100) NOT NULL,
PRIMARY KEY (attribute_value_id),
KEY idx_attribute_value_attribute_id (attribute_id)
);
CREATE TABLE product (
product_id int(11) NOT NULL auto_increment,
name varchar(100) NOT NULL,
description varchar(1000) NOT NULL,
price decimal(10,2) NOT NULL,
image varchar(150) default NULL,
thumbnail varchar(150) default NULL,
PRIMARY KEY (product_id),
FULLTEXT KEY idx_ft_product_name_description (name,description)
);
CREATE TABLE product_attribute (
product_id int(11) NOT NULL,
attribute_value_id int(11) NOT NULL,
PRIMARY KEY (product_id,attribute_value_id)
);
可変数量に基づいて価格を保存する方法がわかりません。例: -
Quantity Price 1-9 £1.91 10-99 £1.64 100-499 £1.10 500+ £1.14
製品とその関連テーブルの作成を手伝ってください。私の要件は上記の参考リンクと同じです。
解決
単にサイト上で示した価格決定マトリックスに一致するテーブルを作成します。
CREATE TABLE product_qty_prices (
id INTEGER NOT NULL PRIMARY KEY,
product_id INTEGER NOT NULL REFERENCES product,
low_qty INTEGER NOT NULL
high_qty INTEGER NOT NULL
price DECIMAL(10,2) NOT NULL )
またhigh_qty列を省略することを選択すると、次の行からlow_qtyを見て、あなたのアプリケーションにすることを導き出すが、私は一般的に、この設計と重複または不正な範囲を得ることのリスク、それは価値がある見つけることができます。
他のヒント
データモデルリソースブック、ボリューム1のコピーを取得 - 3を、よく設計されたデータスキーマを調べます。単に必要に応じて(彼らは強力です)。真剣
- 。店舗で価格はそれほど単純ではありませんあなたのデザインは少し混乱しています。あなたは、一般的なエンティティ - 属性値のデータモデルやドメイン固有のモデルをしたいですか?あなたの特定のドメインのモデリングは直接抽象EAV実装を口論しようとしているよりも簡単です。
あなたがサンプルの実装を見てみたい場合は、は、バリー・ウィリアムズの図書館フリーのデータモデルは、優れた電子商取引の例があります。 こちらを調べます。
所属していません StackOverflow