if you use sql i would suggest using slq filters
While I agree I would like to say that one should always use constraints as well as:
1. SQL Filters are by default not used for FIND EQ operations (https://docs.dataaccess.com/dataflex...SQLFilters.htm). For global SQL filters you need to turn on the DF_FILE_SQL_FILTER_EQ attribute (https://docs.dataaccess.com/dataflex..._FILTER_EQ.htm)
2. Constraints are by default inherited while DD Filters are not. This means that a constraint in the DD of a parent table causes the child record to become invalid when the parent does not match the filter while psSQLFilter is not applied.
3. SQL filters only work on the DD that receives the find instruction. This means that a psSQLFilter on a parent DDO does not execute.

Use psSQLFilter (or the global filters) in an SQL environment to enhance and speed up the find operations.