>> If I add ALL to department table, I must restrict all other tables of >> having >> ALL department. This is a big work and cannot be done nicely in Postgres. > > Not true. :) You simply need to add CHECK (departament_id <> 0) (assuming > 0 is the ID of ALL departaments. You can even CREATE DOMAIN with this > check "built in" to save you some typing. :) > > If, for some reason, you want to be sure that 'ALL deparaments' is not > visible, you can create a view which will SELECT WHERE departament <> 0; > > Basically -- I think you should get some pre-declared values, like > departament_id > of 0 and simply restrict it where it is not allowed. It's better than > forcing NULL > to become a value. :) Dawid, I have meaningful primary key in department table (department code used inside enterptise), not a surrogate number (I use meaningful primary keys whenever possible). Some usres may use floow numbers as department codes. They want to use 0 as ground floor. Using your suggestion my applicaton does not allow to use some code as department code. Should I switch to surrogate primary key in department table? This is major re-write. ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings