What I think William is referring to and may be easier to implement is Person table - PersonID, Name, other attributes.
PersonRelationship
PersonID ParentID
In this case we should be able to create relations and use referential integrity.
>>>Hi,
>>>
>>>I've got a SQL Server Express 2008 R2 database which has a Person table where I store People and their dependents like this:
>>>
>>>PersonId
>>>Name
>>>ParentId
>>>
>>>So one PersonID can have many dependents by storing their ID in the ParentID field (simple self join).
>>>
>>>I want to set up referential Integrity on this table so that if a parent is deleted, their dependents are deleted (cascade). I created a database diagram, dropped my Person table on it and then dragged the PersonId field to the ParentID field. However, when I try to set the Delete Rule to Cascade, it is disabled.
>>>
>>>How can I do this?\
>>
>>I don't believe such complex RI is supported. Most likely you need to implement this RI through the trigger.
>
>Should this do it:
>
>
CREATE TRIGGER PersonsDeleteDependents
> ON Persons
> FOR DELETE
>AS
>BEGIN
>
>
> SET NOCOUNT ON;
>
>
> delete Persons
> from Persons
> inner join deleted on deleted.personid = persons.parentid
>
>END
>
>?
If it's not broken, fix it until it is.
My Blog