I have successfully created the ERD with standard notations as per the UML with reference to ERD Sample
But I want to make lines exactly touching the field names as specified in this question ERD Or UML
is there and inbuilt facility available in plantuml or should I simply alter the x y position of the svg element using CSS ?
In theory it can be done using arrows from/to class members. However, it doesn't work as you'd expect:
@startuml
' hide the spot
hide circle
' avoid problems with angled crows feet
skinparam linetype ortho
entity "Entity01" as e01 {
* e1_id : number <<generated>>
__
* name : text
description : text
}
entity "Entity02" as e02 {
* e2_id : number <<generated>>
__
* e1_id : number <<FK>>
other_details : text
}
entity "Entity03" as e03 {
* e3_id : number <<generated>>
__
e1_id : number <<FK>>
other_details : text
}
e01 ||.left.o{ e02::e1_id
e01 |o.right.o{ e03::e1_id
@enduml
I'd call it a bug in PlantUML, because the lines end in the center of the entity rather than its edge. You could possibly get it fixed by reporting it. However, I doubt you can get a result as nice as the diagram in your question.
Playing around with up/down and left to right direction
gets me a better result:
@startuml
' hide the spot
hide circle
' avoid problems with angled crows feet
skinparam linetype ortho
left to right direction
entity "Entity01" as e01 {
* e1_id : number <<generated>>
__
* name : text
description : text
}
entity "Entity02" as e02 {
* e2_id : number <<generated>>
__
* e1_id : number <<FK>>
other_details : text
}
entity "Entity03" as e03 {
* e3_id : number <<generated>>
__
e1_id : number <<FK>>
other_details : text
}
e01::e1_id ||.up.o{ e02::e1_id
e01::e1_id |o.down.o{ e03::e1_id
@enduml
But, again, I doubt this will work with your example. You can try!
Edit: Looking at this example, you can see that it's pretty close to the example you stated. I think the key is left to right direction
.