По многочисленным просьбам трудящихся описываю состояние дел, связанное с переделкой своего
сайта.
БД для ведения генеалогической информации была разработана мной весной-летом 2003 года. В БД порядка 10 сущностей, программа ведения БД была разработана на C++. После прошествия трех лет я хочу переработать БД.
Мне нужно:
1. Расширяемая и гибкая
(
Read more... )
Comments 15
Мой вопрос был-таки про древовидные структуры)
Reply
По поводу древовидности - в БД сущности хранятся стандартным образом: замыкание на себя (правда, в силу специфики предметной области, не напрямую, а через еще одну таблицу).
В UI сделан framework, состоящий из glyphs. Глифы - либо примитивные (строка, прямоугольник и т.д.), либо композитные (дерево, таблица и т.д.). Глифы умеют правильно позиционироваться и отрисовывать себя. Кроме того, глиф несет ссылку на внешний объект.
Есть еще reporter, который по определенным правилам из объектов делает глифы. Соответвенно, в UI получаем набор глифов, которые отрисовывают то, что нужно (дерево). При клике мыши активируется объект по ссылке из глифа.
Reply
Reply
Есть класс Person, являющийся узлом дерева. Внутри есть массив детей (тоже Person), по умолчанию не инициализированный. При запросе количества детей либо ребенка по номеру лезет в базу, создает по базе дочерние объекты и складывает в массив. При следующем запросе в БД уже не лезет.
Поверх этого работают алгоритмы, которым вообще-то БД пофигу. В C# делаю нечто подобное за исключением того, что классы типа Person будут генерироваться автоматически по шаблону.
Reply
Reply
Reply
Reply
Нужен .Net 2.0 + MS SQL 2005
Reply
Reply
Reply
Reply
А потом, до SQL тоже писали на функциональных языках доступа к БД. Потом перешли к декларативным. Соответственно, структуру программы и представление данных лучше описывать на декларативном уровне.
Reply
Reply
Reply
Leave a comment