Двата най-често срещани подхода са таблица за клас (т.е. таблица за основния клас и друга таблица за всеки подклас, която съдържа допълнителните колони, необходими за описание на подкласа) и таблица на йерархия (т.е. всички колони в една таблица, с една или повече колони, за да се даде възможност за дискриминация на подкласове. Кой е по-добрият подход наистина зависи от подробностите на вашето приложение и стратегия за достъп до данни.
Ще имате таблица за клас в първия си пример, като обърнете посоката на FK и премахнете допълнителните идентификатори от родителя. Другите две са по същество варианти на таблица за клас.