Вы также можете подумать о нормализации вашей базы данных. Вместо того, чтобы повторять источники в таблице несколько раз, вы можете создать отдельную справочную таблицу источников. Затем в исходной таблице вы можете ссылаться на источник по его первичному ключу. Например:
origins
***********************
id name
-----------------------
1 origin_1
2 origin_2
3 origin_3
***********************
detail_data
**************************
id origin_id data
1 1 ...
2 1 ...
3 3 ...
4 3 ...
**************************
Тогда, если вам нужны только источники, для которых существуют данные, вы можете сделать что-то вроде:
SELECT DISTINCT o.*
FROM origins AS o
JOIN detail_data AS dd ON (dd.origin_id = o.id)
ORDER BY o.name ASC;
Я обычно предпочитаю нормализованную базу данных, потому что нормализация может предложить такие преимущества, как уменьшенный размер занимаемой площади, более чистые данные и более гибкая структура. Я признаю, однако, что нормализация кажется менее выгодной с Android по сравнению с традиционными системами баз данных (то есть настольными компьютерами, серверами). И нормализация также имеет недостатки, такие как более сложные запросы (как мы видим выше). Однако для обеспечения максимальной гибкости, ремонтопригодности и надежности в долгосрочной перспективе лучшим подходом может быть нормализация.