0

我有一个酒店价格系统,我需要每天根据其房间类型记录多个值(成本)。此外,每组成本取决于其代理。每个机构都有自己的价格率。例如,

机构 A 的房间类型 A=1000,类型 B=2000,类型 C=3000,从 2012 年 12 月 1 日 - 2012 年 12 月 20 日2012 年 12 月

未来房间类型可能会增加或减少。

机构 A 的房间类型 A=1000, 类型 B=2000, 类型 C=3000 从 2012 年 12 月 1 日 - 2012 年 12 月 20 日 机构 C 的房间类型 A=1200, 类型 B=2200, 类型 C=3200, 类型 D=3500,类型 E=3700 从 2012 年 12 月 1 日 - 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>

提交.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 插入记录的工作脚本。

4

1 回答 1

0

尽管您可以在一个表中实现它(列字段应该是idagencyroom_type、和) rate,但是对于一个很好的规范化结构,您应该有三个表,一个用于,另一个用于,最后一个用于。通过将s 移动到新表,可以更轻松地处理更多房间类型的添加。start_dateend_dateagencyroom_typeratesroom_type

agency表可以有字段idnameroom_type将有idname等等。并且rates将有字段id, agency_id, room_type_id, rate,start_dateend_date

您可以SELECT使用两个内部连接来填写所有必填字段。问题是当您尝试INSERT进入这些表格时,您需要合并一个新的 room_type 和机构。在这种情况下,您将不得不进行三个单独的插入,但总体上仍然是一个更好的设计。

注意:我认为您在插入中缺少 room_type (id 或名称)。

于 2012-11-12T05:06:25.023 回答