powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / нарисовать граф
20 сообщений из 20, страница 1 из 1
нарисовать граф
    #35059333
чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть множество объектов, между ними есть связи.

Например:
Пупкин Вася (отец->) Пупкин Петя
Иванов Иван (учитель->) Пупкин Петя
Иванов Иван (учитель->) Сидоров Петя

таблицы имеют такую структуру
Код: plaintext
1.
2.
create table people (id number, fio char( 200 ));
create table relation (id1 number, id2 number, typerel char( 50 ));

нужно отобразить эти обьекты и их связи графически, в виде графа например так
...
Рейтинг: 0 / 0
нарисовать граф
    #35059341
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как быть? готового ничего не могу найти.
...
Рейтинг: 0 / 0
нарисовать граф
    #35059658
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devExpress
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
нарисовать граф
    #35059695
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что есть под рукой? - на тот язык и переведите.

Например, есть ERWin или другой CASE. Напишите селект, который сгенирирует DDL, где каждый объект - таблица, а связь - внешний ключ. И пусть CASE рисует.
...
Рейтинг: 0 / 0
нарисовать граф
    #35059721
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Можно попробовать визио. Надо подготовить палитру с сущностями и связями. Затем через api накидываете нужные сущност ии связи между ними на лист и применяете функцию автораскладки, должно разложить по листу более или менее сносно...
...
Рейтинг: 0 / 0
нарисовать граф
    #35060011
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У graphviz есть ActiveX объект
...
Рейтинг: 0 / 0
нарисовать граф
    #35061294
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ModelRА что есть под рукой? - на тот язык и переведите.

Например, есть ERWin или другой CASE. Напишите селект, который сгенирирует DDL, где каждый объект - таблица, а связь - внешний ключ. И пусть CASE рисует.

примерно по такому пути и пошел, использую yed-3.0.0.8, генерю селектом xml файл и открываю его в yed.
...
Рейтинг: 0 / 0
нарисовать граф
    #35061605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чендлер ModelRА что есть под рукой? - на тот язык и переведите.

Например, есть ERWin или другой CASE. Напишите селект, который сгенирирует DDL, где каждый объект - таблица, а связь - внешний ключ. И пусть CASE рисует.

примерно по такому пути и пошел, использую yed-3.0.0.8, генерю селектом xml файл и открываю его в yed.
пример SELECT'a и XML можешь кинуть?
...
Рейтинг: 0 / 0
нарисовать граф
    #35061958
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123 Чендлер ModelRА что есть под рукой? - на тот язык и переведите.

Например, есть ERWin или другой CASE. Напишите селект, который сгенирирует DDL, где каждый объект - таблица, а связь - внешний ключ. И пусть CASE рисует.

примерно по такому пути и пошел, использую yed-3.0.0.8, генерю селектом xml файл и открываю его в yed.
пример SELECT'a и XML можешь кинуть?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns/graphml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/graphml http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
  <key for="node" id="d0" yfiles.type="nodegraphics"/>
  <key attr.name="description" attr.type="string" for="node" id="d1"/>
  <key for="edge" id="d2" yfiles.type="edgegraphics"/>
  <key attr.name="description" attr.type="string" for="edge" id="d3"/>
  <key for="graphml" id="d4" yfiles.type="resources"/>
  <graph edgedefault="directed" id="G" parse.edges="3" parse.nodes="4" parse.order="free">
    <node id="n0">
      <data key="d0">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="226.0" y="174.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="sandwich" modelPosition="n" textColor="#000000" visible="true" width="78.0" x="-24.0" y="-22.701171875">Р_Р_Р°Р_Р_Р_ Р_Р_Р°Р_</y:NodeLabel>
          <y:Shape type="ellipse"/>
        </y:ShapeNode>
      </data>
      <data key="d1"/>
    </node>
    <node id="n1">
      <data key="d0">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="558.0" y="177.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="sandwich" modelPosition="n" textColor="#000000" visible="true" width="76.0" x="-23.0" y="-22.701171875">Р_С_РїРєРёР_ Р_РчС'С_</y:NodeLabel>
          <y:Shape type="ellipse"/>
        </y:ShapeNode>
      </data>
      <data key="d1"/>
    </node>
    <node id="n2">
      <data key="d0">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="229.0" y="411.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="sandwich" modelPosition="n" textColor="#000000" visible="true" width="85.0" x="-27.5" y="-22.701171875">РЎРёР_Р_С_Р_Р_ Р_РчС'С_</y:NodeLabel>
          <y:Shape type="ellipse"/>
        </y:ShapeNode>
      </data>
      <data key="d1"/>
    </node>
    <node id="n3">
      <data key="d0">
        <y:ShapeNode>
          <y:Geometry height="30.0" width="30.0" x="563.0" y="405.0"/>
          <y:Fill color="#FFCC00" transparent="false"/>
          <y:BorderStyle color="#000000" type="line" width="1.0"/>
          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="sandwich" modelPosition="n" textColor="#000000" visible="true" width="76.0" x="-23.0" y="-22.701171875">Р_С_РїРєРёР_ Р'Р°С_С_</y:NodeLabel>
          <y:Shape type="ellipse"/>
        </y:ShapeNode>
      </data>
      <data key="d1"/>
    </node>
    <edge id="e0" source="n0" target="n1">
      <data key="d2">
        <y:PolyLineEdge>
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="51.0" x="125.5006103515625" y="3.5948778635047915">Р_С╪РёС'РчР>С_</y:EdgeLabel>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
      <data key="d3"/>
    </edge>
    <edge id="e1" source="n3" target="n1">
      <data key="d2">
        <y:PolyLineEdge>
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="32.0" x="0.03391413103065588" y="-108.35418701171875">Р_С'РчС┼</y:EdgeLabel>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
      <data key="d3"/>
    </edge>
    <edge id="e2" source="n0" target="n2">
      <data key="d2">
        <y:PolyLineEdge>
          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
          <y:LineStyle color="#000000" type="line" width="1.0"/>
          <y:Arrows source="none" target="standard"/>
          <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="51.0" x="3.428496735005467" y="94.15061950683594">Р_С╪РёС'РчР>С_</y:EdgeLabel>
          <y:BendStyle smoothed="false"/>
        </y:PolyLineEdge>
      </data>
      <data key="d3"/>
    </edge>
  </graph>
  <data key="d4">
    <y:Resources/>
  </data>
</graphml>
...
Рейтинг: 0 / 0
нарисовать граф
    #35061963
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не то прекрепил
...
Рейтинг: 0 / 0
нарисовать граф
    #35062004
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Не вижу в XML слова Иван (рисунок не от него?)
- XML генерил из MS SQL Server - инструкцией "for XML"?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
нарисовать граф
    #35062231
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123- Не вижу в XML слова Иван (рисунок не от него?)
- XML генерил из MS SQL Server - инструкцией "for XML"?

Рисунок от него, просто utf-8.
XML генерил через Ж с помощью Oracle.
...
Рейтинг: 0 / 0
нарисовать граф
    #35062355
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто - это ж самому X Y вычислять. А по какому правилу?
...
Рейтинг: 0 / 0
нарисовать граф
    #35062612
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRКруто - это ж самому X Y вычислять. А по какому правилу?
+1
если руками графику, то это не автоматизация (можно и самому нарисовать на канве формы)
...
Рейтинг: 0 / 0
нарисовать граф
    #35062680
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а отец может быть учителем сына?

:)
...
Рейтинг: 0 / 0
нарисовать граф
    #35064171
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ModelRКруто - это ж самому X Y вычислять. А по какому правилу?
считай что рандомно, загружаем эту xml'ку в yEd, а там уже выбираем из готовых готовых layout алгоритмов как расположить. А самому генерить x,y это сложно.

Руками рисовать не подходит :) подобную картинку надо будет генерить 1,2 раза в месяц и там может от 10 до 10000 обектов, и примерно столько же связей. Т.е. сгенерили xml, в которой есть вершины (объекты) и рёбра (связи) и открыли её при помощи yEd, в нём же выбрали по какому алгоритму их расположить.
...
Рейтинг: 0 / 0
нарисовать граф
    #35518265
venam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
У меня схожая проблема - нужно нарисовать граф со связями. Только исходные данные поступают в виде таблиц (csv; xls), связанных по полям-ключам. Никак не могу найти утилиту которая могла бы проанализировать данные в таком виде и построить схему. Очень прошу помочь.
...
Рейтинг: 0 / 0
нарисовать граф
    #35518428
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venam
в виде таблиц (csv; xls), связанных по полям-ключам.
как вы предсьавляете по данным "неизвестной структуры" построить граф?
IMHO - без программиста не обойтись
...
Рейтинг: 0 / 0
нарисовать граф
    #35518562
venam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему же "неизвестной структуры"?
Заранее будет известно сколько и какие поля в таблицах. Естественно, процесс формирования графа подразумевается полуавтоматическим - т.е. мы указываем утилите какие поля будут представлять вершины, а по каким нужно проводить связь (т.е. строить ребра графа).
...
Рейтинг: 0 / 0
нарисовать граф
    #35518739
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venamПочему же "неизвестной структуры"?
Заранее будет известно сколько и какие поля в таблицах. Естественно, процесс формирования графа подразумевается полуавтоматическим - т.е. мы указываем утилите какие поля будут представлять вершины, а по каким нужно проводить связь (т.е. строить ребра графа).
можно провести аналогию с деревьями а РСУБД.
Компоненты для показа дерева из БД есть, но они не все структуры "понимают". Большинство заточено под конкретную структуру хранения дерева в БД. Меняется только имя таблицы и имя поля.
Визуализация сабжа - ещё хуже (лучше подстраивать данные под визуализатор) IMHO
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / нарисовать граф
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]