Второй и третий варианты вполне жизненны.
Не написали, что за БД. Самое простое — поставить каскадное изменение (если есть). Или сделать каскад через триггеры (если есть).
Но если малой кровью, то третий вариант не плох, можно смело использовать.
Первый вариант совсем не годится.