Алгоритм автоматического упорядочения диаграммы отношений объекта
В настоящее время я пишу элемент управления (в C#) для отображения набора таблиц и отношений, которые существуют между ними. Я получил базовый контроль, но хотел бы реализовать что-то похожее на функцию "Автоматическое расположение", предоставляемую компонентом построения диаграмм в SQL Express.
Какой тип алгоритма используется для определения оптимального расположения таблиц? То есть алгоритм, который учитывает все "пути отношений" и предлагает макет, в котором таблицы могут быть расположены без особых помех.
2 ответа
Посмотри в Графвиз. Даже если вы не можете использовать его как зависимость, в нем есть много документации об используемых алгоритмах.
Ознакомьтесь с алгоритмами верстки графа, в частности "ортогональной версткой". Согласно Википедии это "макет с краями, проходящими горизонтально или вертикально, с подходами, которые уменьшают количество пересечений краев и покрываемую область".