<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>