¿Cómo crear una estructura de base de datos adecuada para dominios y subdominios?

Tengo una lista de dominios y una lista de subdominios. Por ejemplo

dominio A tiene subdominios a1, a2, a3.
dominio B tiene subdominio b1, b2, b3.
dominio C no tiene subdominios

Necesito crear una estructura de base de datos para poder ordenarla así:

A
a1
a2
a3
B
b1
C

Y necesito ver claramente cuál es el dominio o subdominio de qué dominio.

ntenté poner dominios en una tabla y subdominios en otra tabla con ForeignKey para dominio.

class Domain(Base):
    __tablename__ = "domains"
    domain_id = Column(Integer(), primary_key=True)
    name = Column(String(), unique=True)


class Subdomain(Base):
    __tablename__ = "subdomains"
    subdomain_id = Column(Integer(), primary_key=True)
    name = Column(String(), unique=True)
    domain_id = Column(Integer, ForeignKey('domains.domain_id'))

Estoy usando dominios y subdominios de ambas tablas para crear la tercera tabla:

class Title(Base):
    __tablename__ = "titles"
    title_id = Column(Integer(), primary_key=True)
    domain_id = Column(Integer, ForeignKey('domains.domain_id'))
    subdomain_id = Column(Integer, ForeignKey('subdomains.subdomain_id')) -- NULL if that is a Domain
    title = Column(String())
    status = Column(Integer())

Respuestas a la pregunta(1)

Su respuesta a la pregunta