2012-11-29 365 views
3

我必須創建一個理貨表,其中通過從booksavailable和newarrivals中獲得售價,從發佈商獲得成本價格並將兩者分開以獲得利潤/損失表來生成理貨表。MySQL主鍵聲明

我該如何用引用上述鍵的語法聲明Tally表? 該表的主鍵應該是什麼? 該表需要顯示相應的書本,即出價和該書帶來的利潤/損失。使用

代碼:

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) 
); 
+0

是n有新來港定居人士嗎?還是他們還會到? –

+0

主鍵可能應該是book id。 –

+0

新來港人士可用。 – user1862100

回答

0

我相信,如果你正在做一些編程,即。 PHP,你可以將你的MySql設計更改爲更簡單的設計。特別是,計算庫存和利潤是一項非常簡單的任務。您也可以爲發佈商使用聯合表格,爲什麼?因爲按照當前的設計,你最終會得到發行商的冗餘數據。由於一個出版商可以擁有多本圖書,因此無需在每本圖書的每個出版商字段中存儲出版商名稱和地址。我建議在booksavailable中添加一個日期列,以便讓您有機會區分新版本和現有書籍。這將刪除與booksavailable和冗餘相同的newarrivals表。

另外,您也可以添加一張名爲ORDER的表格,將您的購買物品放入其中,從您可能計算您的損失/利潤的實際書本金額中減去您售出書籍的金額。另外,如果你在MySQL中使用InnoDB引擎,它可以定義外鍵,不需要用不同的名稱來調用每個表主鍵,它們都可以被命名爲ID。我提出以下建議德興:

mysql workbench diagram

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

反正所有烏爾表中的所有價格的屬性是VARCHAR(),而他們shud是int或BIGINT ..

也很不錯聲明BID,PID爲int而不是varchar(),實際上這個Tally表並不是必需的,因爲它基本上是一個計算......但是如果你需要一個,那麼結構cud就像上面那樣..對於Tally表的PK是隻是在現實中自動生成的ID ..