0
我設計一個數據庫,想知道:什麼是映射一個交易到多個產品的最佳方式是什麼?例如。如果客戶在一次交易中購買產品x,y,z全部(交易編號123)。將交易鏈接到產品表的最佳方式是什麼?產品表映射到交易
我也正在考慮使用一種方法來存儲在交易表中選擇(產品)所有項目的數組,但隨後在處理時,將難以稍後檢索的價格爲每一件產品。
在需要你的經驗
感謝
我設計一個數據庫,想知道:什麼是映射一個交易到多個產品的最佳方式是什麼?例如。如果客戶在一次交易中購買產品x,y,z全部(交易編號123)。將交易鏈接到產品表的最佳方式是什麼?產品表映射到交易
我也正在考慮使用一種方法來存儲在交易表中選擇(產品)所有項目的數組,但隨後在處理時,將難以稍後檢索的價格爲每一件產品。
在需要你的經驗
感謝
類似下面的模型應該滿足您的需求:
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`)
);
爲什麼不PRODUCT_ID。你可以有一個事務處理表,每個反式處理有1行#然後有一個transdetail表,該處有多行處理,並且有一個product_id列,可以將它加入到產品中 – Drew