-
Star
(196)
You must be signed in to star a gist -
Fork
(62)
You must be signed in to fork a gist
-
-
Save QuantumGhost/0955a45383a0b6c0bc24f9654b3cb561 to your computer and use it in GitHub Desktop.
| @startuml | |
| ' uncomment the line below if you're using computer with a retina display | |
| ' skinparam dpi 300 | |
| !define Table(name,desc) class name as "desc" << (T,#FFAAAA) >> | |
| ' we use bold for primary key | |
| ' green color for unique | |
| ' and underscore for not_null | |
| !define primary_key(x) <b>x</b> | |
| !define unique(x) <color:green>x</color> | |
| !define not_null(x) <u>x</u> | |
| ' other tags available: | |
| ' <i></i> | |
| ' <back:COLOR></color>, where color is a color name or html color code | |
| ' (#FFAACC) | |
| ' see: http://plantuml.com/classes.html#More | |
| hide methods | |
| hide stereotypes | |
| ' entities | |
| Table(user, "user\n(User in our system)") { | |
| primary_key(id) INTEGER | |
| not_null(unique(username)) VARCHAR[32] | |
| not_null(password) VARCHAR[64] | |
| } | |
| Table(session, "session\n(session for user)") { | |
| primary_key(id) INTEGER | |
| not_null(user_id) INTEGER | |
| not_null(unique(session_id)) VARCHAR[64] | |
| } | |
| Table(user_profile, "user_profile\n(Some info of user)") { | |
| primary_key(user_id) INTEGER | |
| age SMALLINT | |
| gender SMALLINT | |
| birthday DATETIME | |
| } | |
| Table(group, "group\n(group of users)") { | |
| primary_key(id) INTEGER | |
| not_null(name) VARCHAR[32] | |
| } | |
| Table(user_group, "user_group\n(relationship of user and group)") { | |
| primary_key(user_id) INTEGER | |
| primary_key(group_id) INTEGER | |
| joined_at DATETIME | |
| } | |
| ' relationships | |
| ' one-to-one relationship | |
| user -- user_profile : "A user only \nhas one profile" | |
| ' one to may relationship | |
| user --> session : "A user may have\n many sessions" | |
| ' many to many relationship | |
| ' Add mark if you like | |
| user "1" --> "*" user_group : "A user may be \nin many groups" | |
| group "1" --> "0..N" user_group : "A group may \ncontain many users" | |
| @enduml |
| @startuml | |
| ' uncomment the line below if you're using computer with a retina display | |
| ' skinparam dpi 300 | |
| !define Table(name,desc) class name as "desc" << (T,#FFAAAA) >> | |
| ' we use bold for primary key | |
| ' green color for unique | |
| ' and underscore for not_null | |
| !define primary_key(x) <b>x</b> | |
| !define unique(x) <color:green>x</color> | |
| !define not_null(x) <u>x</u> | |
| ' other tags available: | |
| ' <i></i> | |
| ' <back:COLOR></color>, where color is a color name or html color code | |
| ' (#FFAACC) | |
| ' see: http://plantuml.com/classes.html#More | |
| hide methods | |
| hide stereotypes | |
| ' entities | |
| ' relationships | |
| @enduml |
@tim-rohrer You could use:
!define VARCHAR(x) <color:gray>VARCHAR(x)</color>
if "desc" - will omit quotes it will break NetBeans plugin, but if descriptions in Tables will omit quotes it will works both on CLI and NetBeans.
https://stackoverflow.com/questions/49423335/sintax-error-in-plantuml
Nice work!
You can show one-to-many relations using the more-common 'bird foot' line notation, supported in plantUML now:
user "1" *--+ "many" user_group : has many groups through >
You can show one-to-many relations using the more-common 'bird foot' line notation, supported in plantUML now:
user "1" *--+ "many" user_group : has many groups through >
Nice!
Please fix 30 line:
not_null(unique(session_id) VARCHAR[64]
to
not_null(unique(session_id)) VARCHAR[64]
@pavelvrublevskij Fixed. Thanks for mentioning.
Have you gave Information Engineering notation a try? https://plantuml.com/ie-diagram
Nice!
I'm researching, but is there a way to add lengths to the field types? For example, CHAR(2)? I realize could do something like CHAR-2, but it would be nice to put them in parens.
Also, I'm experimenting with foreign keys...