我有一个酒店房价系统,我需要根据房间类型每天记录多个价值(成本)。此外,每组成本取决于其代理。每个代理商都有自己的价格。例如,
代理商A从12月1日开始,房间类型A = 1000,类型B = 2000,类型C = 3000 2012年 - 2012年12月20日 机构B的房间类型A = 1200,类型B = 2200,类型C = 3200从12月1日起 2012年 - 2012年12月20日
此外,房间类型可能会增加或减少。
代理商A从12月1日开始,房间类型A = 1000,类型B = 2000,类型C = 3000 2012年 - 2012年12月20日 代理商C的房间类型A = 1200,类型B = 2200,类型C = 3200,类型D = 3500,类型E = 3700从12月1日起 2012年 - 2012年12月20日
所以我有一个HTML表单:
<form method="post" action="submit.php">
Agency :
<select name="agency">
<option value="a">Agency A</option>
<option value="b">Agency B</option>
<option value="c">Agency C</option>
</select>
From : <input type="text" name="date1" />
To : <input type="text" name="date2" />
<?
$sql_roomType="select * from roomtype_db order by id asc";
...
while($rec_roomType=mysql_fetch_array($result_roomType)){
$_roomTypeID=$rec_roomType['id'];
$_roomTypeCost=$rec_roomType['cost'];
$_roomTypeName=$rec_roomType['name'];
echo "$_roomTypeName : <input type=\text\" name=\"cost\" /><br />";//display stack of input
}
?>
<input type="submit" value="submit" />
</form>
submit.php
<?
$_agency=$_POST['agency'];
$_date1=$_POST['date1'];
$_date2=$_POST['date2'];
$_cost=$_POST['cost'];
$sql_addRate="insert into rate_db values('','$_agency','$_cost','$_date1','$_date2'";
$result_addRate=mysql_query($sql_addRate);
?>
现在的问题是我不确定将来根据这些有问题的mysql方法是否会出现任何问题。例如,费率可以在将来的日期更改。房间类型可能会添加或删除。那么请你给我一个工作脚本,用记录表将记录插入mySQL。
答案 0 :(得分:0)
虽然您可以在一个表格中实现它(列字段应为id
,agency
,room_type
,rate
,start_date
和{{ 1}}),对于一个很好的规范化结构,你应该有三个表,一个用于end_date
,另一个用于agency
,最后用于room_type
。通过将rates
移动到新表,可以更轻松地处理更多房间类型的添加。
room_type
表格可以包含字段agency
和id
等。name
会再次包含room_type
,id
等字段。 name
将包含字段rates
,id
,agency_id
,room_type_id
,rate
和start_date
。
您可以使用两个内部联接end_date
所有必填字段。问题是,当您尝试SELECT
进入这些表格时,您将拥有一个新的room_type和代理机构。在这种情况下,您将不得不做三个单独的插入,但总体上仍然是一个更好的设计。
注意:我认为您在插入中缺少room_type(id或name)。