Мое приложение загружает большое количество данных из базы данных в сложную структуру данных. Структура данных в памяти повторяет структуру базы данных, что означает, что если база данных содержит следующие таблицы:
Затем у меня есть классы A, B и C, и:
Это означает, что если я загружаю базу данных, что я должен загрузить его в правильном порядке. Если я сначала загружу C, он будет жаловаться, что не может установить значение C :: m_b, потому что экземпляр, на который он должен указывать, не был загружен. Например, если файл XH включает YH, но YH также включает XH, вероятно, у вас плохой дизайн; если класс X зависит от класса Y, и наоборот, у вас, вероятно, плохой дизайн, который должен быть решен путем извлечения этой зависимости и введения третьего класса Z, который зависит от X и Y (X и Y больше не будут зависеть друг от друга) .
Будет ли хорошей идеей распространить это правило проектирования и на проектирование баз данных? Другими словами: предотвращение циклических ссылок во внешних ключах.