<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Всем привет.<br>
    <br>
    С невеликим успехом пытаюсь писать ERP-PLM-PDM систему для завода.
    Поставил PostgreSQL и начал думать над структурой БД.<br>
    <br>
    Дано:<br>
    - Список документов. Для простоты представим, что в системе все
    документы представлены таблицей document с полями id (primary key),
    uri и name.<br>
    <br>
    - Список элементов, представленный таблицей elements с полями id
    (primary key), name и documents[]. Это может быть какая-то деталь,
    например, кронштейн. К данной детали необходимо привязать список
    документов (чертёж, спецификация, стандарт на крутящие моменты,
    качество ЛКП и прочего). Я пытаюсь сделать это через хранение
    массива documents[] типа bigint с id документов. Планирую
    разворачивать этот список в программе в имена документов.<br>
    <br>
    - Структура элементов, представляющая собой таблицу mbom с полями id
    (primary key) и structure. Поле structure имеет тип ltree
    (используется модуль ltree из PostgreSQL) и в качестве элементов
    дерева используются id таблицы elements. Эти id также планирую
    разворачивать в программе в имена(дерево) элементов, образующие
    крупные узлы продукции (локомотив).<br>
    <br>
    Вопрос:<br>
    Основной вопрос формулируется как: А правильно ли я вообще это
    сделал? Может, есть способ получше?<br>
    1) Можно ли SQL запросом обратиться к массиву documents[] таблицы
    elements и по указанным там номерам раскрыть список документов? Не
    хочу писать логику разбора массива в программе.<br>
    2) Можно ли обратиться к полю structure таблицы mbom и по номерам
    ракрыть список соответствующих элементов? Мотивировано тем же самым
    нежеланием писать логику в программе. Хочу просто список из таблицы
    elements.<br>
    <br>
    В SQL соображаю  на уровне CREATE TABLE/ INSERT INTO.<br>
    <br>
    P. S.: Для работы используется Pgtcl из собственно интерпретатора
    Tcl.<br>
    P. P. S.: Могу попробовать нарисовать диаграмму того, что хочу
    получить.<br>
    <pre class="moz-signature" cols="72">-- 
С уважением, Игорь Чудов
Энгельсский Инструментальный Завод "ЭИЗ"
Сайт: <a class="moz-txt-link-freetext" href="http://nir.org.ru/">http://nir.org.ru/</a>
Телефон: +7 937 266-51-34</pre>
  </body>
</html>