0
構建一個價格表我需要顯示房企的表是這樣的: 有效地從MySQL數據庫
有18日期列,他們不會全部是相同的關稅。在18列中,可能有1到6種不同的關稅。出於這個原因,我在我的數據庫中有關稅和價格表。
tariff: tariff_id room_id
price: tariff_id double_weekday single_weekday double weekend single_weekend extrabed
然後有一個日期表:
dates: date tariff_id hotel_id + some more fields
我的問題是找到構建以高效的方式我的MySQL查詢的最佳方式。顯然,我不想爲表中的每個單元格運行查詢。
我已經開始查找適用於顯示日期範圍的關稅。
$query_tariff = "SELECT tariff_id, date FROM dates WHERE (date BETWEEN '$firstdate' AND '$lastdate') AND hotel_id = '$hid'";
然後,我可以很容易地將該結果減少到唯一的tariff_id值。
然後,我有一個查詢來獲取所有對應於每個如果關稅價格:
while ($row_tariff = mysql_fetch_assoc($tariff)) {
$tariff_id = $row_tariff['tariff_id'];
$query_price = "SELECT * FROM price WHERE tariff_id = '$tariff_id'";
}
我的問題就來了下一階段。當我連續寫一行時,我怎麼知道使用哪個價格?我有一種感覺,這可能需要數據透視表,但我已經完成了一些閱讀並完全丟失了。或者也許解決方案在於使用數組,我能夠理解的機會稍大一些。
問題是「foreach感興趣的日期」內發生了什麼。似乎我不得不在那裏查詢以獲取價格信息。因此,如果有六種房間類型,那就是6×18 = 108個查詢來顯示錶格一次。 – TrapezeArtist 2014-09-05 15:49:19
或查詢該房型的所有房價。就我個人而言,我將價格表設計爲一種房價的一天房價。然後,您可以查詢相關聯接,其中可用日期位於搜索的開始日期和結束日期之間。 – 2014-09-05 16:01:12