Como criar uma estrutura de banco de dados adequada para domínios e subdomínio

Tenho uma lista de domínios e uma lista de subdomínios. Por exemplo

domínio A possui subdomínios a1, a2, a
domínio B possui o subdomínio b1, b2, b
domínio C não tem subdomínios

Preciso criar uma estrutura de banco de dados para que eu possa solicitá-la da seguinte forma:

A
a1
a2
a3
B
b1
C

E preciso ver claramente qual é o domínio ou subdomínio de qual domíni

entei colocar domínios em uma tabela e subdomínios em outra tabela com ForeignKey para domíni

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'))

Estou usando domínios e subdomínios de ambas as tabelas para criar a terceira tabela:

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())

questionAnswers(1)

yourAnswerToTheQuestion