Supponiamo di avere una tabella di dati di, diciamo, auto con un gruppo di proprietà per ogni record. Esempio:
| Vin | Anno | Fare | Attori | colore | Chilometraggio |
Voglio consentire agli utenti di definire filtri (arbitrariamente complessi) che possono essere utilizzati per restituire un sottoinsieme di record dalla tabella. Tuttavia, c'è un problema: ogni record del veicolo può apparire solo in un sottoinsieme. Ad esempio, un utente può aggiungere due filtri:
(make = 'Chevrolet')
(make = 'Ford')
Questo è valido, perché nessun veicolo sarà duplicato tra i due set restituiti. Tuttavia, supponiamo che un utente inserisca due filtri diversi:
(make = 'Chevrolet')
(color = 'Black')
Questo è un set di filtri non valido, perché qualsiasi Chevy nera apparirà in entrambi i set di risultati.
È anche possibile annidare e combinare le unità filtro in un unico filtro: ad es.
((make = 'Chevrolet') AND ((color = 'Black') OR (anno > = 2012)))
che restituirà tutti i Chevys con un esterno nero o un anno modello del 2012 o superiore.
Senza sapere nulla dei dati effettivi nella tabella, c'è un modo per verificare se un set di filtri è garantito come esclusivo?