隐藏基于另一个表中的id存在的模型数据

时间:2010-01-06 18:43:42

标签: php cakephp mysql

对于cakephp专家,我有一个复杂的问题。

基本上,我创建了一个名为“locations”的数据库表。每个月我都会从客户端以csv格式将此表发送给我。不幸的是,我不得不更新这个表,而是要清空它并重新导入所有记录。不幸的是,我根本无法改变这张桌子。

功能方面,用户可以查看这些记录的显示,并能够选择隐藏某些记录。这个“隐藏”属性必须是持久的,并且能够在每个月清除所有记录后继续存在。

我昨天完成了所有这些工作。我所做的是,创建一个名为location_properties的独立表(列分别为:id(int),location_id(外键),is_hidden(boolean))。显示这些记录时,只需检查“is_hidden == true”。

这一切都很好(和工作!),但后来我的老板搞砸了作品。他告诉我从表中删除“is_hidden”列,因为它会更有效率。我应该能够简单地检查是否存在location_id来隐藏或显示它。

看起来并不那么简单。任何人都知道如何解决这个问题?我已经尝试了所有我能想到的东西。

2 个答案:

答案 0 :(得分:0)

你的老板错了。

添加列的效率高于每月删除和重新导入位置的效率。

他是说效率较低,还是你做了一个实际的基准测试,看它是否会对性能造成太大影响?

答案 1 :(得分:0)

乍一看,我看到了两个解决方案:

1)添加一个条件数组('Location.id'=>'NOT NULL')

2)将联接类型更改为右联接

我希望这会有所帮助

相关问题