2012-11-20 63 views
0

我設計一個數據庫,想知道:什麼是映射一個交易到多個產品的最佳方式是什麼?例如。如果客戶在一次交易中購買產品x,y,z全部(交易編號123)。將交易鏈接到產品表的最佳方式是什麼?產品表映射到交易

我也正在考慮使用一種方法來存儲在交易表中選擇(產品)所有項目的數組,但隨後在處理時,將難以稍後檢索的價格爲每一件產品。

在需要你的經驗

感謝

+0

爲什麼不PRODUCT_ID。你可以有一個事務處理表,每個反式處理有1行#然後有一個transdetail表,該處有多行處理,並且有一個product_id列,可以將它加入到產品中 – Drew

回答

1

類似下面的模型應該滿足您的需求:

DROP TABLE IF EXISTS `tTransaction`; 
CREATE TABLE `tTransaction` (
    `transactionId`  INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    `transactionAmount` NUMBER(10,2) NOT NULL, 
    /* Other Data */ 
    PRIMARY KEY (`transactionId`) 
); 

DROP TABLE IF EXISTS `tProduct`; 
CREATE TABLE `tProduct` (
    `productId` INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    `productName` VARCHAR(32) NOT NULL, 
    /* Other Data */ 
    PRIMARY KEY (`productId`) 
); 

DROP TABLE IF EXISTS `tTransactionProductMap`; 
CREATE TABLE `tTransactionProductMap` (
    `transactionId` INT UNSIGNED NOT NULL, 
    `productId`  INT UNSIGNED NOT NULL, 
    FOREIGN KEY (`transactionId`) REFERENCES tTransaction (`transactionId`), 
    FOREIGN KEY (`productId`) REFERENCES tProduct (`productId`) 
); 
相關問題