How would you design a database that has a table with 2 fields and just one of them can be set at a time, without too much redundancy? For example a file system:
One table with id, name, parentid, and (if you want) type. Folders and files all point to their parent with parentid. Disks do not have a parentid. The only field that is NULL is the parentid field of the (relatively few) records that are of type Disk.