2010-11-10 179 views
1

我目前正在爲我的僱主網站使用mysql/php/html進行報價檢索系統。他們目前在電子表格中使用沿着每個軸的高度和寬度的雙向表格形式的定價矩陣,以便查找價格。MySQL的矩陣操作

我的問題是什麼是操縱這個矩陣到mysql可用的數據庫表中的最佳方式?由於他們使用的定價網格高達19x17我意識到我需要一個3列表(寬度,高度,價格)與323(19x17)行的每個可用高度和寬度的排列和它的相應價格,但是在那裏沒有手動輸入每個可能的寬度和高度組合的方式來實現這一點不那麼長的方式?

感謝

編輯:網格的一個例子是在左邊,我需要它的格式是 http://img163.imageshack.us/img163/406/82853790.jpg

回答

2

首先,你需要從舊的矩陣中的數據,通過選擇列[0],列[1]從oldMatrix和結果複製到電子表格..

我想你有在第一表亂七八糟,確定所述第二表[基於你張貼的圖像]

嘗試SELECT柱[0],其中柱[0] = 500和列[1] = 700之後,將結果複製到電子表格並創建newmatrix(表格)。

祝你好運。

1

您可以使用右 -

寬度表 - 細節寬度(ID,遞減等)

身高表 - 高度(ID,遞減等)的細節

鐠冰表 - 外鍵爲寬度和高度表鍵和相應的價格。

現在,將數據直接插入數據庫,無需手動輸入每個寬度和高度組合,方法是將數據從Excel表導入臨時表,並編寫適當的SQL腳本將數據插入高度,寬度和價格表。

+0

將主電子表格導入臨時表。對於每列,添加一個記錄到寬度。對於每一行,將一條記錄添加到高度。遍歷連續行上的所有列,並使用寬度(列標題),高度(行中的第一列)和價格(電子表格中的條目)向價格表中添加記錄。這可以通過一次性使用php腳本輕鬆完成。 – mellamokb 2010-11-10 15:00:44

1

爲什麼您的新width_height_price表上的ID?當組合密鑰更好地執行完整性時,它是一個冗餘代理鍵。

drop table width_height_price; 
create table width_height_price 
(
width smallint unsigned not null, 
height smallint unsigned not null, 
price decimal(8,2) not null, 
primary key (width, height) -- clustered composite PK 
) 
engine=innodb; 

什麼停止你再次添加(700,500)和(700,500),因爲你只需要生成一個新的ID行!

讓DB做的工作:P