我有一个表,它有很多不同的查询。
我想添加一个功能,允许我基本上禁用指定的行,这样它们就不会出现在网站上的任何地方。
现在,最明显的解决方案是创建一个新的列,并将“AND ACTIVE=TRUE
”添加到网站上的每个SELECT
查询中。然而,有太多不同的SELECT
查询,所以搜索每一个查询是非常不实际的。我一定会错过一些。
有没有更实用的方法来禁用行?
最佳答案
考虑创建一个视图,该视图选择表中的所有列,但在按照您在问题中的建议创建ACTIVE = TRUE
列之后应用条件ACTIVE
。如果重命名原始表并使用该表的前一个名称创建视图,则可以在应用程序中继续无缝地使用该表,并应用新的限制条件。
CREATE VIEW the_table_name AS (
SELECT
col1,
col2,
col3
FROM the_renamed_table
WHERE ACTIVE = TRUE
);
如果性能似乎无法扩展,则可能需要在
ACTIVE
列上添加索引。关于php - MySQL-我可以防止选择行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25248247/