我目前正在添加一些功能,在基于PHP和MySQL的CMS上管理假日租赁。
CMS将属性详细信息存储在几个表中,我正在添加第三个表(letting_times
),其中包含有关人们何时入住该酒店的信息。基本功能允许用户在客人入住时添加新的时间,编辑客人入住的时间,如果客人不想再住在酒店,则取消预订。
现在我能想到更新属性占用时间的最佳方法是删除letting_times数据库中包含的所有时间并重新插入它们。我能想到的唯一另一种方法是包含表的主键,如果存在并且有值,则执行更新,否则执行插入,但如果删除了数据行,则不会删除这些数据行。
有更好的方法吗?
答案 0 :(得分:0)
以下是我对LETTING_TIMES
表的建议:
PROPERTY_ID
,pk& FK EFFECTIVE_DATE
,pk,DATE,not null EXPIRY_DATE
,DATE,not null 将pk设置为复合键(PROPERTY_ID
和EFFECTIVE_DATE
)允许您为给定属性提供多条记录,同时阻止它们出现在同一天。没有一种简单的方法可以阻止[sub?] let重叠,但这样可以减少必须删除属性和包含的所有时间。重新添加。