3

booksavailable と newarrivals から販売価格を取得し、出版社から原価を取得して集計表を作成し、2 つを差し引いて利益/損失表を取得する必要があります。

上記のキーを参照するための構文で集計テーブルを宣言するにはどうすればよいですか? このテーブルの主キーは何ですか? このテーブルは、対応するブック ID、つまり入札と、そのブックからもたらされる利益/損失を表示する必要があります。

使用コード:

CREATE TABLE BOOKSAVAILABLE( 
BID VARCHAR(5) PRIMARY KEY, 
        TITLE    VARCHAR(50),
        AUTHOR    VARCHAR(40), 
        CATEGORY VARCHAR(40), 
        PRICE VARCHAR(10),
        AVAILABLE VARCHAR(5)
);

CREATE TABLE NEWARRIVALS(
        BID VARCHAR(5) PRIMARY KEY, 
        TITLE VARCHAR(50), 
        AUTHOR VARCHAR(40), 
        CATEGORY VARCHAR(40),
        PRICE VARCHAR(10), 
        AVAILABLE VARCHAR(10)
);

CREATE TABLE PUBLISHER( 
        PID VARCHAR(5), 
        BID VARCHAR(5),
        PRIMARY KEY(PID,BID), 
        NAME VARCHAR(40), 
        CONTACT VARCHAR(10),
        UNITS VARCHAR(40), 
        SOLDAT VARCHAR(10)
);
4

2 に答える 2

0
CREATE TABLE TALLY( 
ID int PRIMARY KEY,
BID VARCHAR(5) , 
PRICE_PROFIT_LOSS INT)

とにかく、すべてのurテーブルで、価格のすべての属性はvarchar()ですが、intまたはbigintである必要があります..

また、 BID 、 PID を varchar() の代わりに int として宣言すると便利です。実際には、基本的に計算であるため、集計テーブルは必要ありません..しかし、必要な場合、構造 cud は上記のようになります..PK集計表は、実際には自動生成された ID にすぎません。

于 2013-01-26T16:22:47.163 に答える
0

PHPなどのプログラミングを行っている場合は、MySqlの設計をより単純なものに変更できると思います。特に、在庫と利益の計算は非常に簡単な作業です。また、出版社用のジョイントテーブルを使用することもありますが、なぜですか? 現在の設計では、パブリッシャーのデータが冗長になるためです。1 人の出版社が多数の書籍を所有できるため、各書籍の各出版社フィールドに出版社名、住所を格納する必要はありません。booksavailable に日付列を追加することをお勧めします。これにより、新着本と入手可能な本を簡単に区別できるようになります。これにより、booksavailable と非常に同一で冗長な newarrivals テーブルが削除されます。

また、ORDER というテーブルを追加して、その中に購入を入れることもできます。実際の本の価格から本を販売した金額を差し引いて、損失/利益を計算できます。また、外部キーを定義する機能を提供する mysql で InnoDB エンジンを使用している場合、各テーブルの主キーを異なる名前で呼び出す必要はありません。それらはすべて ID という名前にすることができます。次の設計をお勧めします。

mysql ワークベンチ図

于 2013-01-26T16:12:47.893 に答える