更新链接表

时间:2009-10-01 02:11:56

标签: php mysql database-design data-modeling

我目前正在添加一些功能,在基于PHP和MySQL的CMS上管理假日租赁。

CMS将属性详细信息存储在几个表中,我正在添加第三个表(letting_times),其中包含有关人们何时入住该酒店的信息。基本功能允许用户在客人入住时添加新的时间,编辑客人入住的时间,如果客人不想再住在酒店,则取消预订。

现在我能想到更新属性占用时间的最佳方法是删除letting_times数据库中包含的所有时间并重新插入它们。我能想到的唯一另一种方法是包含表的主键,如果存在并且有值,则执行更新,否则执行插入,但如果删除了数据行,则不会删除这些数据行。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

以下是我对LETTING_TIMES表的建议:

  • PROPERTY_ID,pk& FK
  • EFFECTIVE_DATE,pk,DATE,not null
  • EXPIRY_DATE,DATE,not null

将pk设置为复合键(PROPERTY_IDEFFECTIVE_DATE)允许您为给定属性提供多条记录,同时阻止它们出现在同一天。没有一种简单的方法可以阻止[sub?] let重叠,但这样可以减少必须删除属性和包含的所有时间。重新添加。