如何在UML中描述表拓扑?
我有3个表A(A1、A2、A3)、B和C(A1-A3是表A的属性)。A1是多路复用器。如果A1为1,A2将索引表B,如果A1为0,A3将索引表C 我们能用UML描述这个拓扑吗?如果没有,我还可以使用什么工具来描述拓扑如何在UML中描述表拓扑?,uml,Uml,我有3个表A(A1、A2、A3)、B和C(A1-A3是表A的属性)。A1是多路复用器。如果A1为1,A2将索引表B,如果A1为0,A3将索引表C 我们能用UML描述这个拓扑吗?如果没有,我还可以使用什么工具来描述拓扑 谢谢 您可以使用事件驱动的流程链(en.wikipedia.org/wiki/event-driven_process_chain)进行此操作。此图用于建模过程。否则,您可以查看状态图(en.wikipedia.org/wiki/state_diagram_(UML)),但我不认为
谢谢 您可以使用事件驱动的流程链(en.wikipedia.org/wiki/event-driven_process_chain)进行此操作。此图用于建模过程。否则,您可以查看状态图(en.wikipedia.org/wiki/state_diagram_(UML)),但我不认为这是您需要的。事件驱动的流程链应该完全符合您的需要。您有一个泛化-专业化关系,在类图中,它在实体-关系模型中称为“is-a”关系
..............................................
............................+------------+....
........................+---+ B |....
........................|...+------------+....
..................../|..|.....................
..+------------+.../.|..|...+------------+....
..| A +--<..+--+---+ C |....
..+------------+...\.|..|...+------------+....
....................\|..|.....................
........................|...+------------+....
........................+---+ D |....
............................+------------+....
..............................................
注意,这有几个变体,包括在建模和编程中,例如所有记录都有相同的键域(A1),而不是相同类型的不同标识符
干杯。这个问题似乎离题了,因为它属于数据库,而不是数据库。这就像一个程序序列。当我们得到表A的条目时,我们查看该条目的字段A1/A2/A3。如果A1为1,我们将使用A2作为索引来查找表B中的相应条目。如果A1为0,我们将使用A3作为索引来查找表C中的条目。我们有很多表。所以我想找到一个好的方法来描述它。谢谢!是否有生成事件驱动流程链的工具?生成的文件能否用于进一步处理?(例如,使用脚本处理生成的文件)例如,请尝试Microsoft VISIO(价格昂贵)。或者说(免费而且非常聪明)。谢谢是否有一个工具可以像您那样生成第二个图形?@user3084213“虽然有时我会手工编辑。您可能希望将我的回答标记为ok,单击箭头;-)
..................................................
..........................{0,1}.+------------+....
........................+-------+ B |....
........................|.......+------------+....
........................|.......| [+] A2 |....
........................|.......+------------+....
........................|.......| ... |....
........................|.......+------------+....
........................|.........................
........................|.........................
................1.../|..|.........................
..+------------+.../.|..|.{0,1}.+------------+....
..| A +--<..+--+-------+ C |....
..+------------+...\.|..|.......+------------+....
..| [+] A1 |....\|..|.......| [+] A3 |....
..| [+] A2 |........|.......+------------+....
..| [+] A3 |........|.......| ... |....
..| [+] A4 |........|.......+------------+....
..+------------+........|.........................
..| ... |........|.........................
..+-------+----+........|.........................
..........|.............|.{0,1}.+------------+....
..........|.............+-------+ D |....
..+-------+------\-+............+------------+....
..| [When A1=1 \|............| [+] A4 |....
..| A2 references \............+------------+....
..| table B] |............| ... |....
..+----------------+............+------------+....
..................................................
struct A
{
int A1;
int A2;
int A3;
int A4;
char FirstName[150];
char LastName[150];
// other fields
};
struct B
{
int A2;
// other fields
};
struct C
{
int A3;
// other fields
};
struct D
{
int A4;
// other fields
};
int main(...)
{
int ErrorCode = 0;
A* RecordA = NULL;
B* RecordB = NULL;
C* RecordC = NULL;
D* RecordD = NULL;
RecordA = ReadAFromTable();
switch (RecordA->A1)
{
case 1:
RecordB = ReadBFromTable(RecordA->A2);
break;
case 2:
RecordC = ReadCFromTable(RecordA->A3);
break;
case 3:
RecordD = ReadDFromTable(RecordA->A3);
break;
}
// do other stuff
return ErrorCode;
}