2011-06-27 6 views
3

私は、MySQLデータベースで正しいことをしているとアドバイスが必要です。私は、これはアイテムという名前のテーブルで構成され、私は、Javaアプリケーションに在庫と名付け、このデータベースを接続していますし、ここでの詳細は以下のとおりです。私のMySQLデザインはデータベースルールに違反していますか?

  1. ID - INT(11)、AUTO_INCREMENT
  2. ITEM_NAME - VARCHAR(50)
  3. カテゴリ - VARCHAR(25)
  4. q_box - INT(11)
  5. unit_price_box - 二重
  6. sub_total_box - 二重
  7. q_pc - INT(11)
  8. unit_price_pc - 二重
  9. sub_total_pc - 二重
  10. grand_total - ダブル
  11. recent_date_purchased -をlast_date_modified
  12. 日 - スタンプ

私はすでに在庫アプリケーションの開発に株式を保存するために、これを使用して、しかし、私は今、やりたいことにあるのです顧客からの注文を格納するテーブルを追加します。INT(11)、AUTO_INCREMENT

  • -

    1. をORDER_ID:

      テーブル名:受注次のように構成さ

      私はこれを行うことを計画しています

      item_name - varchar(50)

    2. カテゴリ - VARCHAR(25)
    3. q_box - INT(11)
    4. unit_price_box - ダブル//このボックスあたりの卸売/小売価格です
    5. sub_total_box - ダブル
    6. q_pc - int(11)
    7. unit_price_pc - double //これはrですetail /卸売価格PCあたり
    8. sub_total_pc - ダブル
    9. GRAND_TOTAL - ダブル
    10. CUSTOMER_NAME - VARCHAR(50)
    11. をlast_date_modified - タイムスタンプ

      私の質問は次のとおりです。私は同じ変数を使用しているので、私はMySQLのルールに違反していますか?

    あなたはアドバイスをお持ちですか?何かアドバイスは非常にあなたのデザインがMySQLのようなリレーショナルデータベースの全体的なアイデアに反するれ、あなたが繰り返され、多くのデータを持っている、いくつかの正規化を使用することができます。..事前に

    感謝:)

  • 答えて

    1

    あなたを混乱する識別するための別名を使用することとしないようにする必要があり

    アイテムテーブル、オーダーおよびorder_itemsテーブルの方が良いでしょう。少ない繰り返しデータがある道

    注文

    id int(11), AUTO_INCREMENT 
    customerid int(11) 
    orderdate datetime 
    PRIMARY KEY (id) 
    FOREIGN KEY (customerid) REFERENCES Customers(Id) 
    

    ORDER_ITEMS

    orderid int(11), 
    itemid int(11) 
    FOREIGN KEY (orderid) REFERENCES Orders(id) 
    FOREIGN KEY (itemid) REFERENCES Items(Id) 
    

    3

    をいただければ幸いです。 ためテーブルで

    http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/

    +0

    厳密には、あなたのデザインはMySQLのルールにも、データベースルールにも違反していません。データを正規化する必要はありません。ただし、異常を回避するためのデータ最適化の観点から、スキーマを再設計する必要があります。 –

    1

    、あなたはCUSTOMER_IDを持っており、その外部キーにすることができます。 顧客は、注文を作成する前にそこにいる必要があります。いいえ、あなたが同じ変数を使用する場合は文句を言わないMYSQLの規則に違反すること

    ない、あなたがJOINS書くとき、あなたは

    関連する問題