<br><br><div class="gmail_quote">18 ноября 2008 г. 22:56 пользователь Aleksander Gorohovski <span dir="ltr">&lt;<a href="mailto:angel@feht.dgtu.donetsk.ua">angel@feht.dgtu.donetsk.ua</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Если коротко (абстрактно), то суть в следующем:<br>
<br>
Есть некоторые объекты со своими свойствами и<br>
у некоторых свойств &nbsp;есть различное количество подобъектов,<br>
тоже со своими свойствами, т.е. структура с 2-3-х уровневой иерархией.<br>
<br>
Можно, конечно, и реляционную модель взять, но слишком много маленьких<br>
табличек получится<div class="Ih2E3d"><br>
:)<br>
</div></blockquote><div><br></div></div><a href="http://ru.wikipedia.org/wiki/Zope">http://ru.wikipedia.org/wiki/Zope</a> - включает объектную БД. <br>Можно попробовать приспособить LDAP (а бэкенд к нему на той же Postgesql сделать).<br>
<br>Можно и в реляционной БД ручками... Если вложенные объекты более-менее подобны родительским и общее количество уникальных атрибутов не слишком велико, то всё прекрасно хранится в одной таблице с указанием parent_id.<br>
<br>Можно усложнить логику выборок, но получить практически универсальное хранилище, если сделать как-то так:<br>classes:<br>id, parent_id, type (class|method|attribute),name, value_type(int,float,text,...), default_value, comment - для классов<br>
<br>objects:<br>id, class_id, value - для экземпляров.<br><br>Разумеется любые значения придется хранить в виде строк, а value_type будет только подсказкой для обработки.<br>Можно ли и нужно ли будет хранить код методов объектов в БД - без понятия. Они могут заполняться только для наглядности при анализе дерева классов.<br>