Получение значений из разных полей от объекта IS-A в комнате

#database-design #android-room

Вопрос:

Простая диаграмма ER

Я пытаюсь найти способ узнать имена всех покупателей супермаркета. Как видно на изображении, в супермаркете может быть несколько клиентов, которые могут быть как человеком, так и компанией (полное покрытие и без перекрытия). Проблема в том, что для человека его имя состоит из фамилии и имени, в то время как у компании есть только название (компании).

Я ищу список, в котором имя клиента будет либо названием компании, либо именем и фамилией человека. Основная идея, которая у меня сейчас есть, заключается в том, что я буду запрашивать каждого клиента и проверять для каждого клиента, есть ли у него подкласс как у компании или человека, как только я узнаю, к какому типу относится клиент, я попытаюсь получить правильное имя(имена).

Это звучит как интенсивный способ получения имени клиента, поэтому мой вопрос: есть ли более интенсивный запрос, который я могу написать, который позволяет мне получить все имена клиентов, или мне нужно перепроектировать свою ER-диаграмму таким образом, чтобы обеспечить быстрый запрос?