4 ms·
or you can create view for every table that supports soft deletion and ensure all of your read-only queries are using those table CREATE VIEW current_custo
by ducaale 4y ago
or you can create view for every table that supports soft deletion and ensure all of your read-only queries are using those table
CREATE VIEW current_customers AS
SELECT * FROM customers where deleted_at is null;
SELECT * FROM current_customers JOIN ...
Of course, this comes with its downsides e.g. views need to be recreated in every migration and there might be some complex join operations that might not work.
- chewyfruitloop 4y agoIt may be work sometime in the future, but having to prefix every query with a null check sounds bonkers. A view can be optimised to do all that for you. I made the what the flip expression reading that they did a prefix on everything.
- Inviz 4y agoIt can be the other way around, that the table has prefix/suffix, and the view doesnt. Alternatively view can be created with the same name, but in a different schema, which is set with higher priority for the user (e.g. via search_path in PG)