【发布时间】:2013-07-03 17:42:18
【问题描述】:
我正在创建一个预订应用程序,并已尽可能标准化数据库。我的问题如下,在对 WHERE 子句中的组合视图进行选择性选择之前,我应该在数据库中创建再次组合表的视图,还是在将表加入视图之前使用选择过滤表更好?
编辑:包含的示例。
第一个场景先创建组合视图,然后对组合视图执行SELECT(这个视图可能有上千条记录):
CREATE VIEW appc as
SELECT * FROM appointment
LEFT OUTER JOIN chair
ON appointment.chair_idchair = chair.idchair
SELECT * FROM appc
WHERE chair_idchair = 1;
第二种情况会先过滤连接左边的表,然后根据过滤后的表创建一个视图,然后使用这个小得多的视图进行连接:
CREATE VIEW appf as
SELECT * FROM appointment
WHERE chair_idchair = 1;
SELECT * FROM appf
LEFT OUTER JOIN chair
ON appf.chair_idchair = chair.idchair
【问题讨论】:
-
你能举例说明你想到的两种不同风格吗?