Сначала слово предупреждения:
Базовые данные не являются SQL. Сущности не являются таблицами. Объекты не являются строками. Столбцы не являются атрибутами. Базовые данные - это система управления графом объектов, которая может сохранять или не сохранять объектный граф, а может и не использовать SQL для этого далеко за кулисами. Попытка думать о базовых данных в терминах SQL приведет к тому, что вы полностью неправильно поймете базовые данные и приведет к большим трудностям и потерянному времени.
См. Текилла совет
Теперь, если забыть о SQL и думать о графах объектов, ваши объекты будут выглядеть примерно так:
Country{
someAttribute:string // or whatever
countryLinks<-->>CountryLink.country
}
CountryLink{
countryID1:string // or whatever
countryID2:string // or whatever
country<<-->Country.countryLinks
}
По мере добавления объектов Country и CountryLink
вы добавляете их в отношения по мере необходимости. Затем, чтобы найти CountryLink
объекты, связанные с конкретным Country
объектом, вы должны выполнить выборку для объекта Country
для Country
объектов, соответствующих некоторым критериям. Получив этот объект, вы просто запрашиваете у него CountryLink
объекты в его countryLinks
отношениях. И вы сделали.
Здесь важно помнить, что сущности в сочетании с управляемыми объектами предназначены для моделирования реальных объектов, условий или событий и отношений между ними. например человек и его машины. SQL на самом деле не моделирует и не симулирует, он просто хранит.