2009-10-01 87 views
0

我目前平添几分的管理对PHP和MySQL运行CMS的顶级度假租赁的功能。更新链接表

CMS将财产详细信息存储在几张表中,并且我添加了第三张表(letting_times),其中将包含有关人们何时入住酒店的信息。基本功能将允许用户在客人入住时添加新的时间,编辑客人入住的时间,并在客人不再想留在酒店时取消预订。

现在,我能想到的更新倍,财产被占用的最好的方法是删除包含在letting_times数据库中的所有时间,并再次重新插入。我认为唯一的方法是包含表的主键,如果存在且有值,则执行更新,否则执行插入操作,但如果删除数据,则不会删除数据行。

有没有更好的方法来做到这一点?

回答

0

这里是我的LETTING_TIMES表推荐:

  • PROPERTY_ID,PK & FK
  • EFFECTIVE_DATE,PK,日期,而不是空
  • EXPIRY_DATE,日期,而不是空

设置该PK是一个复合密钥(PROPERTY_IDEFFECTIVE_DATE)全部您可以让一个给定的财产拥有多个记录,同时阻止它们在同一天。有没有简单的方法来阻止[sub?]让重叠,但这将减轻不得不删除所有时间重新添加属性&。

+0

这有助于防止配股被双预订,但我没有看到,如果一个订单被取消,将如何帮助。例如,一个物业有三个预订。如果预订#2被取消,又添加了另一个预订,我看不到添加新预订的方式,并删除取消的预订,而不删除所有内容并重新开始。 – Sasha 2009-10-01 02:54:35

+0

要处理取消操作,请删除相应的条目 - 而不是全部记录。批发删除是一个不好的方法。 – 2009-10-01 03:22:53