{"id":2111,"date":"2026-05-26T07:38:24","date_gmt":"2026-05-26T07:38:24","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/docs\/uncategorized\/plantuml-erd-syntax-guide\/"},"modified":"2026-05-26T07:38:24","modified_gmt":"2026-05-26T07:38:24","slug":"plantuml-erd-syntax-guide","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p ERD c\u1ee7a PlantUML"},"content":{"rendered":"<h2>\u0110i\u1ec3m quan tr\u1ecdng c\u1ee7a s\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3 (ERD) l\u00e0 g\u00ec?<\/h2>\n<p>M\u1ed9t <strong>S\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3 (ERD)<\/strong> l\u00e0 b\u1ea3n v\u1ebd c\u1ea5u tr\u00fac \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 thi\u1ebft k\u1ebf, t\u00e0i li\u1ec7u h\u00f3a v\u00e0 ph\u00e2n t\u00edch c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7. N\u00f3 tr\u1ef1c quan h\u00f3a c\u00e1c b\u1ea3ng (th\u1ef1c th\u1ec3) trong m\u1ed9t h\u1ec7 th\u1ed1ng, c\u00e1c c\u1ed9t c\u1ee5 th\u1ec3 (thu\u1ed9c t\u00ednh) m\u00e0 ch\u00fang ch\u1ee9a, v\u00e0 c\u00e1ch c\u00e1c b\u1ea3ng n\u00e0y li\u00ean k\u1ebft v\u1edbi nhau. Trong PlantUML, c\u00e1c ERD \u0111\u01b0\u1ee3c t\u1ea1o b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <strong>k\u00fd hi\u1ec7u K\u1ef9 thu\u1eadt Th\u00f4ng tin (IE)<\/strong>, \u0111\u01b0\u1ee3c tri\u1ec3n khai theo ti\u00eau chu\u1ea9n <strong>k\u00fd hi\u1ec7u ch\u00e2n chim<\/strong>\u0111\u1ec3 bi\u1ec3u di\u1ec5n c\u00e1c r\u00e0ng bu\u1ed9c quan h\u1ec7.<\/p>\n<p>D\u00f9 b\u1ea1n \u0111ang thi\u1ebft k\u1ebf m\u1ed9t kho d\u1eef li\u1ec7u vi d\u1ecbch v\u1ee5, t\u1ed1i \u01b0u h\u00f3a c\u00e1c \u0111\u01b0\u1eddng \u0111i n\u1ed1i SQL, hay l\u1eadp b\u1ea3n \u0111\u1ed3 ki\u1ebfn tr\u00fac kho d\u1eef li\u1ec7u quy m\u00f4 to\u00e0n doanh nghi\u1ec7p, m\u1ed9t ERD UML d\u1ef1a tr\u00ean v\u0103n b\u1ea3n \u0111\u1ea3m b\u1ea3o c\u00e1c l\u01b0\u1ee3c \u0111\u1ed3 c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c minh b\u1ea1ch ho\u00e0n to\u00e0n. V\u1edbi <strong>VPasCode<\/strong>, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a c\u00e1c b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u, kh\u00f3a ch\u1ec9 m\u1ee5c v\u00e0 c\u00e1c m\u1ed1i quan h\u1ec7 logic b\u1eb1ng c\u00fa ph\u00e1p s\u1ea1ch s\u1ebd, khai b\u00e1o r\u00f5 r\u00e0ng. B\u1ed9 x\u1eed l\u00fd t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd k\u00edch th\u01b0\u1edbc h\u1ed9p b\u1ea3ng v\u00e0 \u0111\u1ecbnh tuy\u1ebfn c\u00e1c chu\u1ed7i k\u1ebft n\u1ed1i kh\u00f3a ngo\u1ea1i m\u00e0 kh\u00f4ng c\u00f3 b\u1ea5t k\u1ef3 \u0111\u01b0\u1eddng b\u1ed1 tr\u00ed n\u00e0o ch\u1ed3ng ch\u00e9o.<\/p>\n<h2>H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p c\u1ed1t l\u00f5i: C\u00e1c th\u00e0nh ph\u1ea7n v\u00e0 c\u1ea5u tr\u00fac<\/h2>\n<p>X\u00e2y d\u1ef1ng m\u1ed9t ERD ki\u1ec3u IE m\u1ea1nh m\u1ebd trong PlantUML ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1c kh\u1ed1i th\u1ef1c th\u1ec3 c\u00f3 c\u1ea5u tr\u00fac, c\u00e1c ch\u1ec9 \u0111\u1ecbnh kh\u00f3a r\u00f5 r\u00e0ng v\u00e0 c\u00e1c b\u1ed9 \u0111i\u1ec1u ch\u1ec9nh c\u1ea5p \u0111\u1ed9 ch\u00e2n chim.<\/p>\n<h3>1. Khai b\u00e1o c\u00e1c th\u1ef1c th\u1ec3 (b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u)<\/h3>\n<p>B\u1ea1n khai b\u00e1o m\u1ed9t b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <code>entity<\/code>t\u1eeb kh\u00f3a, theo sau l\u00e0 t\u00ean b\u1ea3ng v\u00e0 m\u1ed9t c\u1eb7p d\u1ea5u ngo\u1eb7c nh\u1ecdn. B\u00ean trong d\u1ea5u ngo\u1eb7c nh\u1ecdn, b\u1ea1n li\u1ec7t k\u00ea c\u00e1c c\u1ed9t b\u1ea3ng. \u0110\u1ec3 l\u01b0\u1ee3c \u0111\u1ed3 c\u1ee7a b\u1ea1n s\u1ea1ch s\u1ebd v\u00e0 d\u1ec5 \u0111\u1ecdc, h\u00e3y s\u1eed d\u1ee5ng d\u1ea5u g\u1ea1ch ngang (<code>--<\/code>) \u0111\u1ec3 t\u00e1ch bi\u1ec7t c\u00e1c kh\u00f3a ch\u00ednh\/kh\u00f3a ngo\u1ea1i kh\u1ecfi c\u00e1c thu\u1ed9c t\u00ednh d\u1eef li\u1ec7u th\u00f4ng th\u01b0\u1eddng:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">entity \"users\" as users_table {\r\n    id : INT [PK]\r\n    --\r\n    email : VARCHAR(255)\r\n    created_at : TIMESTAMP\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"jsXYoEv\"><img alt=\"\" class=\"alignnone size-full wp-image-598\" decoding=\"async\" height=\"98\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png\" width=\"183\"\/><\/p>\n<h3>2. Ch\u1ec9 \u0111\u1ecbnh kh\u00f3a ch\u00ednh v\u00e0 kh\u00f3a ngo\u1ea1i<\/h3>\n<p>M\u1eb7c d\u00f9 c\u00e1c ch\u1ec9 b\u00e1o v\u0103n b\u1ea3n nh\u01b0 `[PK]` ho\u1eb7c `[FK]` ho\u1ea1t \u0111\u1ed9ng t\u1ed1t, b\u1ed9 x\u1eed l\u00fd IE c\u1ee7a PlantUML c\u0169ng h\u1ed7 tr\u1ee3 c\u00e1c bi\u1ec3u t\u01b0\u1ee3ng kh\u00f3a h\u00ecnh \u1ea3nh. \u0110\u1eb7t m\u1ed9t d\u1ea5u sao (<code>*<\/code>) tr\u01b0\u1edbc m\u1ed9t thu\u1ed9c t\u00ednh s\u1ebd ch\u1ec9 \u0111\u1ecbnh n\u00f3 l\u00e0 c\u1ed9t **b\u1eaft bu\u1ed9c (kh\u00f4ng \u0111\u01b0\u1ee3c r\u1ed7ng)**, trong khi m\u1ed9t chu\u1ed7i v\u0103n b\u1ea3n s\u1ea1ch ho\u1eb7c th\u1ebb s\u1ebd th\u00eam ng\u1eef c\u1ea3nh ch\u1ec9 m\u1ee5c r\u00f5 r\u00e0ng:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIp9L53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">entiti \"orders\" {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * user_id : INT &lt;&lt;FK&gt;&gt;\r\n    discount_code : VARCHAR(50)\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIp9L53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"aivVLsO\"><img alt=\"\" class=\"alignnone size-full wp-image-599\" decoding=\"async\" height=\"98\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19010e1b143.png\" width=\"239\"\/><\/p>\n<h3>3. \u00c1nh x\u1ea1 Cardinality v\u00e0 M\u1ed1i quan h\u1ec7 Crow\u2019s Foot<\/h3>\n<p>\u0110\u1ec3 k\u1ebft n\u1ed1i c\u00e1c b\u1ea3ng v\u00e0 \u0111\u1ea3m b\u1ea3o c\u00e1c r\u00e0ng bu\u1ed9c to\u00e0n v\u1eb9n tham chi\u1ebfu, h\u00e3y s\u1eed d\u1ee5ng k\u1ebft h\u1ee3p c\u00e1c k\u00fd t\u1ef1 g\u1ea1ch ngang, d\u1ea5u ngo\u1eb7c v\u00e0 k\u00fd t\u1ef1 \u1ed1ng. Trong k\u00fd hi\u1ec7u IE, c\u00e1c k\u00fd t\u1ef1 n\u00e0y t\u1ea1o th\u00e0nh c\u00e1c \u0111\u1ea7u **ch\u00e2n chim** ri\u00eang bi\u1ec7t \u0111\u1ea1i di\u1ec7n cho c\u00e1c m\u1ed1i quan h\u1ec7 c\u01a1 s\u1edf d\u1eef li\u1ec7u:<\/p>\n<ul>\n<li><code>||--||<\/code> **Ch\u00ednh x\u00e1c M\u1ed9t \u0111\u1ebfn Ch\u00ednh x\u00e1c M\u1ed9t:** M\u1ed9t \u00e1nh x\u1ea1 m\u1ed9t-m\u1ed9t nghi\u00eam ng\u1eb7t, b\u1eaft bu\u1ed9c.<\/li>\n<li><code>||--o|<\/code> **Ch\u00ednh x\u00e1c M\u1ed9t \u0111\u1ebfn Kh\u00f4ng ho\u1eb7c M\u1ed9t:** M\u1ed9t \u00e1nh x\u1ea1 m\u1ed9t-m\u1ed9t t\u00f9y ch\u1ecdn.<\/li>\n<li><code>||--|{<\/code> **Ch\u00ednh x\u00e1c M\u1ed9t \u0111\u1ebfn M\u1ed9t ho\u1eb7c Nhi\u1ec1u:** M\u1ed9t m\u1ed1i quan h\u1ec7 m\u1ed9t-\u0111a b\u1eaft bu\u1ed9c.<\/li>\n<li><code>||--o{<\/code> **Ch\u00ednh x\u00e1c M\u1ed9t \u0111\u1ebfn Kh\u00f4ng, M\u1ed9t ho\u1eb7c Nhi\u1ec1u:** M\u1ed9t m\u1ed1i quan h\u1ec7 m\u1ed9t-\u0111a ti\u00eau chu\u1ea9n, t\u00f9y ch\u1ecdn.<\/li>\n<\/ul>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">users_table ||--o{ orders : \"places\"<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"BYtNcjJ\"><img alt=\"\" class=\"alignnone size-full wp-image-600\" decoding=\"async\" height=\"174\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a190119b741e.png\" width=\"114\"\/><\/p>\n<h2>C\u00e1c Th\u1ef1c h\u00e0nh T\u1ed1t cho C\u00e1c S\u01a1 \u0111\u1ed3 C\u01a1 s\u1edf D\u1eef li\u1ec7u S\u1ea1ch<\/h2>\n<ul>\n<li><strong>Duy tr\u00ec Quy \u01b0\u1edbc Vi\u1ebft Hoa:<\/strong> Gi\u1eef c\u00e1c khai b\u00e1o th\u1ef1c th\u1ec3 c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 d\u1ef1 \u0111o\u00e1n \u0111\u01b0\u1ee3c. S\u1eed d\u1ee5ng snake_case vi\u1ebft th\u01b0\u1eddng (v\u00ed d\u1ee5, <code>order_items<\/code>) cho c\u00e1c b\u1ea3ng th\u1ef1c t\u1ebf \u0111\u01b0\u1ee3c \u00e1nh x\u1ea1 SQL, ho\u1eb7c s\u1eed d\u1ee5ng CamelCase vi\u1ebft hoa cho c\u00e1c m\u00f4 h\u00ecnh mi\u1ec1n kh\u00e1i ni\u1ec7m.<\/li>\n<li><strong>Lu\u00f4n ghi ch\u00fa c\u00e1c Kh\u00f3a Ngo\u1ea1i:<\/strong> Khi li\u00ean k\u1ebft hai b\u1ea3ng, lu\u00f4n x\u00e1c \u0111\u1ecbnh c\u1ed9t kh\u00f3a ngo\u1ea1i b\u00ean trong kh\u1ed1i b\u1ea3ng con. \u0110i\u1ec1u n\u00e0y cung c\u1ea5p c\u00e1c ng\u1eef c\u1ea3nh tham chi\u1ebfu r\u00f5 r\u00e0ng cho c\u00e1c \u0111\u1ed9i k\u1ef9 thu\u1eadt trong qu\u00e1 tr\u00ecnh di chuy\u1ec3n d\u1eef li\u1ec7u.<\/li>\n<li><strong>Ki\u1ec3m so\u00e1t Kho\u1ea3ng c\u00e1ch Ch\u00e2n Chim:<\/strong> C\u00e1c s\u01a1 \u0111\u1ed3 c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p v\u1edbi h\u00e0ng ch\u1ee5c b\u1ea3ng c\u00f3 th\u1ec3 nhanh ch\u00f3ng tr\u1edf n\u00ean ch\u1eadt ch\u1ed9i. N\u1ebfu c\u00e1c \u0111\u01b0\u1eddng m\u1ed1i quan h\u1ec7 c\u1ee7a b\u1ea1n b\u1eaft \u0111\u1ea7u giao nhau m\u1ed9t c\u00e1ch kh\u00f4ng t\u1ef1 nhi\u00ean, h\u00e3y thay th\u1ebf c\u00e1c b\u1ed9 n\u1ed1i g\u1ea1ch \u0111\u00f4i (<code>--<\/code>) b\u1eb1ng ba ho\u1eb7c b\u1ed1n g\u1ea1ch ngang (<code>---<\/code>) \u0111\u1ec3 t\u00e1ch c\u00e1c b\u1ea3ng ra xa h\u01a1n v\u00e0 cho ph\u00e9p b\u1ed9 \u0111\u1ed9ng l\u1ef1c b\u1ed1 c\u1ee5c c\u00f3 th\u00eam kh\u00f4ng gian \u0111\u1ec3 s\u1eafp x\u1ebfp l\u01b0\u1edbi.<\/li>\n<\/ul>\n<h2>C\u00e1c V\u00ed d\u1ee5 Th\u1ef1c t\u1ebf v\u1ec1 ERD PlantUML<\/h2>\n<h3>V\u00ed d\u1ee5 1: M\u00f4 h\u00ecnh quan h\u1ec7 th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed c\u1ed1t l\u00f5i (Kh\u00f3a v\u00e0 \u00c1nh x\u1ea1)<\/h3>\n<p>B\u1ea3n thi\u1ebft k\u1ebf ch\u1ee9c n\u0103ng n\u00e0y m\u00f4 h\u00ecnh h\u00f3a m\u1ed9t v\u00f2ng l\u1eb7p giao d\u1ecbch c\u01a1 s\u1edf d\u1eef li\u1ec7u th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed c\u1ed1t l\u00f5i, cho th\u1ea5y c\u00e1ch ng\u01b0\u1eddi d\u00f9ng, \u0111\u01a1n h\u00e0ng v\u00e0 s\u1ed5 ghi n\u1ee3 thanh to\u00e1n li\u00ean k\u1ebft v\u1edbi nhau th\u00f4ng qua c\u00e1c m\u1ed1i quan h\u1ec7 ki\u1ec3u ch\u00e2n chim nghi\u00eam ng\u1eb7t.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZP9DQy9048RlWVo7mOkjD605BoAY-46bLaIaq5COap5PckocknkirVxtJZGfWLfmJyEyx-u-yp4q5hNDqyHrcZ3JH5y49Asm1zYgJz0aGz92HY2aLM1Yr1caYdCIp4UEcephn28a28GE4d8TyovaXXfJMCoNqytRQWfAsrYvZkkK3pToGzeq00qK4HnT1_YqG8JGW_bo0_t-wdamkAGzhv8fHP6mutMq7Z-DrdUFxVPzfMLep5xfq8_Hn3LFfzijFLci9DMLul9t7OklLrpdy6QmeWg_vfdzUbfWbSN4nrJbqh9XCXtFNqOBPd_eb60y0PkR6bdt3rc6XvHZFw4mgX0lySsCvuh-XTGe3GPMAEbhsX6FFQ2hdOxGqXuFLscRCA6Tu2PhIh1u2nCmGSnZWwsG8MyHByjvugUJvwbZsUKUrvTWGARXEfTC8PzELOMiHoH9yy-5PSWhoVlw0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLF1QXin4Bqlx3yClgGDDQG1Nq88CQbBJTCGGYZfoIXQTIMw7hcIDY74FVdWGouDfOSS2brw2WIIqaAfzxZ6_x5_qj7QBWjD3z5X9FJUY3SpJzlMCUFIVX86Ap3zMFp068wd8uedgip772Hj8mGdo_m2A5mDglDtNcqZYiLNbC2BZBZ53HrFqk8dvVl4CSBqifna2cmvkUM0nRKB0waY0LmPdeWmiEyK3fXXVTZjxdKEt-ntG1idTHY4WK2dt1aqC9xTbVaN1L7n6-C6C0kf5GREmm1ehOAAO0EwUuUmkRd_ScjhVjriBc7HPoeXnklsmSwBzi6ZfsjhZvVOW5bxgatKaypA6cUzrLfm1bAZg2C--KDTt_HobY7uHip5qNCFKETBwTKup_zoLi5fnv8Uw-iK7H6UTNQwhzgxLC2JzOKwcfzBRKrUwnzvjim_GomLO9b_eu4n6fBJHOQLs4H4yGFKLhNzLwvXQ1btIcFFYBV22EJYtiR7p8bJTdQlxXKuycuYv-GNIsiPtrmuJic07Emigz1Fy3vbw5qv3eFA4SDXiwdF5mFOy9Cf9xzS8mpcDnuU3fSb4-x8d1eC8yQsm8Z-mHy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n' \u0110\u00f3ng b\u0103ng vi\u1ec7c hi\u1ec3n th\u1ecb h\u1ed9p th\u1ef1c th\u1ec3 th\u00e0nh c\u00e1c h\u00ecnh vu\u00f4ng hi\u1ec7n \u0111\u1ea1i s\u1eafc n\u00e9t\r\nhide circle\r\nskinparam LINETYPE ortho\r\n\r\nentity \"ng\u01b0\u1eddi d\u00f9ng\" as user {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * email : VARCHAR(100)\r\n    * password_hash : VARCHAR(255)\r\n    phone : VARCHAR(20)\r\n}\r\n\r\nentity \"\u0111\u01a1n h\u00e0ng\" as order {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * user_id : INT &lt;&lt;FK&gt;&gt;\r\n    * total_amount : DECIMAL(10,2)\r\n    status : VARCHAR(50)\r\n}\r\n\r\nentity \"s\u1ed5 ghi n\u1ee3 thanh to\u00e1n\" as ledger {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * order_id : INT &lt;&lt;FK&gt;&gt;\r\n    * transaction_reference : VARCHAR(100)\r\n    gateway : VARCHAR(50)\r\n}\r\n\r\n' X\u00e1c \u0111\u1ecbnh c\u00e1c r\u00e0ng bu\u1ed9c s\u01a1 \u0111\u1ed3 quan h\u1ec7\r\nuser ||--o{ order : \"\u0111\u1eb7t\"\r\norder ||--|| ledger : \"t\u1ea1o ra\"\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLF1QXin4Bqlx3yClgGDDQG1Nq88CQbBJTCGGYZfoIXQTIMw7hcIDY74FVdWGouDfOSS2brw2WIIqaAfzxZ6_x5_qj7QBWjD3z5X9FJUY3SpJzlMCUFIVX86Ap3zMFp068wd8uedgip772Hj8mGdo_m2A5mDglDtNcqZYiLNbC2BZBZ53HrFqk8dvVl4CSBqifna2cmvkUM0nRKB0waY0LmPdeWmiEyK3fXXVTZjxdKEt-ntG1idTHY4WK2dt1aqC9xTbVaN1L7n6-C6C0kf5GREmm1ehOAAO0EwUuUmkRd_ScjhVjriBc7HPoeXnklsmSwBzi6ZfsjhZvVOW5bxgatKaypA6cUzrLfm1bAZg2C--KDTt_HobY7uHip5qNCFKETBwTKup_zoLi5fnv8Uw-iK7H6UTNQwhzgxLC2JzOKwcfzBRKrUwnzvjim_GomLO9b_eu4n6fBJHOQLs4H4yGFKLhNzLwvXQ1btIcFFYBV22EJYtiR7p8bJTdQlxXKuycuYv-GNIsiPtrmuJic07Emigz1Fy3vbw5qv3eFA4SDXiwdF5mFOy9Cf9xzS8mpcDnuU3fSb4-x8d1eC8yQsm8Z-mHy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZP9DQy9048RlWVo7mOkjD605BoAY-46bLaIaq5COap5PckocknkirVxtJZGfWLfmJyEyx-u-yp4q5hNDqyHrcZ3JH5y49Asm1zYgJz0aGz92HY2aLM1Yr1caYdCIp4UEcephn28a28GE4d8TyovaXXfJMCoNqytRQWfAsrYvZkkK3pToGzeq00qK4HnT1_YqG8JGW_bo0_t-wdamkAGzhv8fHP6mutMq7Z-DrdUFxVPzfMLep5xfq8_Hn3LFfzijFLci9DMLul9t7OklLrpdy6QmeWg_vfdzUbfWbSN4nrJbqh9XCXtFNqOBPd_eb60y0PkR6bdt3rc6XvHZFw4mgX0lySsCvuh-XTGe3GPMAEbhsX6FFQ2hdOxGqXuFLscRCA6Tu2PhIh1u2nCmGSnZWwsG8MyHByjvugUJvwbZsUKUrvTWGARXEfTC8PzELOMiHoH9yy-5PSWhoVlw0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"UBJPtUm\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-601\" decoding=\"async\" height=\"444\" loading=\"lazy\" sizes=\"auto, (max-width: 301px) 100vw, 301px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c.png 301w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c-203x300.png 203w\" width=\"301\"\/><\/p>\n<p><strong>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p:<\/strong> Ch\u1ec9 th\u1ecb <code>hide circle<\/code> v\u00f4 hi\u1ec7u h\u00f3a c\u00e1c v\u00f2ng tr\u00f2n bi\u1ec3u t\u01b0\u1ee3ng l\u1edbp UML m\u1eb7c \u0111\u1ecbnh, trong khi <code>skinparam LINETYPE ortho<\/code> bu\u1ed9c c\u00e1c \u0111\u01b0\u1eddng m\u1ed1i quan h\u1ec7 ph\u1ea3i \u0111i theo c\u00e1c g\u00f3c vu\u00f4ng 90 \u0111\u1ed9 g\u1ecdn g\u00e0ng. S\u01a1 \u0111\u1ed3 r\u00f5 r\u00e0ng cho th\u1ea5y m\u1ed9t ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 \u0111\u1eb7t t\u1eeb 0 \u0111\u1ebfn nhi\u1ec1u \u0111\u01a1n h\u00e0ng (<code>||--o{<\/code>), trong khi m\u1ed9t \u0111\u01a1n h\u00e0ng ph\u1ea3i c\u00f3 \u0111\u00fang m\u1ed9t b\u1ea3n ghi s\u1ed5 ghi n\u1ee3 thanh to\u00e1n li\u00ean k\u1ebft (<code>||--||<\/code>).<\/p>\n<h3>V\u00ed d\u1ee5 2: S\u01a1 \u0111\u1ed3 H\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd n\u1ed9i dung n\u00e2ng cao (Giao \u0111i\u1ec3m nhi\u1ec1u-\u0111a)<\/h3>\n<p>B\u1ea3n thi\u1ebft k\u1ebf doanh nghi\u1ec7p n\u00e2ng cao n\u00e0y m\u00f4 h\u00ecnh h\u00f3a to\u00e0n b\u1ed9 ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd n\u1ed9i dung (CMS). N\u00f3 th\u1ec3 hi\u1ec7n c\u00e1ch x\u1eed l\u00fd c\u00e1c ki\u1ebfn tr\u00fac nhi\u1ec1u-\u0111a m\u1ed9t c\u00e1ch s\u1ea1ch s\u1ebd b\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng m\u1ed9t b\u1ea3ng \u00e1nh x\u1ea1 trung gian.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFVQy8m4CVV0_aV3b-s2GKty4L4bD4nsHHnPMnF9Mj36soJabmVdFg_BxK_h9qRzYcN-tBtkU-bKuDCOvucbCGYv1087IIS4hCHCcEQfV0wNxhUvye5fJ5Mb5329GhSGYzJ1aqFc87Y13jAm7vz426COBxqO3nUlKmcvRNZr6cMsphQRwcU6bKVREc4sypxRFtuF5lVFWo7TsNE97bqCV6bmgrDUEw7HycXJHWmv97IWfUOLRYz6bMojCroFnXKBKDk0Yqo54h-GZfqFVBhldxAiap8gAIfWXFCKTiXEZUdAVIFggPdneX8yj1dM9WpNxXltconwZgaqjIUAt_Au6fxki0dY6h7V_fdHr4IYrvdUxk1DKzOuIfB815o0mPr7c2kkQ7a-ChsUyTHkyQyKJ62H2QawL7IBFY2gdeAtxmGjalLKriHGsH1V5HCkGpjR_43\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFDIiD054RtWRp39Hkr4AX2DqLAIubOjANK8BegqoGaGvEPc4p4qhfsxHjOfQ1YNo1Tk8WlaZTn-fEOf2hDCj_7pBdd9dMV8Oy5ZYqA5jODqB2dsOOe-4DCNEGX1yvR7KMzxYf0FMPHKH05Wp3CHY0DeYSCjpWEFva4o0UN-Wp6eW3yAG7MeGgjZWh7nzspMctzMfQJ60NyDA-VQPsahHBm2so39vUDNlEqqTi_gbGErfbl1-QlmO3g8nweofKg2lTPJXqH2vnuCTDMc1fYXaczqSwe13bPbiDoUNEbRlYQXrs6ATb2oX4Cul25c11DESXT74uXemvaA00wo7KnhwTyIx7z0cJULpBJVwra8EJxs2I6taTiwQlLLYxKHhjRH8u-E9GTnE6ShBLHn-7XpjQAq3yWczN_gPMFGmbRtfLRvnuqut0M0FEYK0CRH-y4XYk3Dm4YOCMB1r5OVOEJYIpJSUgn2fB6qpSaYKAw_EsEQqNF16pAzuEb_4d9xBprzHZDkPXXzEhmKjqWElzvlW40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nhide circle\r\nskinparam LINETYPE ortho\r\n\r\nentity \"b\u00e0i vi\u1ebft\" as post {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * author_id : INT &lt;&lt;FK&gt;&gt;\r\n    * title : VARCHAR(255)\r\n    slug : VARCHAR(255)\r\n    body : TEXT\r\n}\r\n\r\nentity \"danh m\u1ee5c\" as category {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * name : VARCHAR(100)\r\n    description : VARCHAR(255)\r\n}\r\n\r\nentity \"b\u1ea3ng \u00e1nh x\u1ea1 b\u00e0i vi\u1ebft - danh m\u1ee5c\" as mapping {\r\n    * post_id : INT &lt;&lt;PK&gt;&gt;&lt;&lt;FK&gt;&gt;\r\n    * category_id : INT &lt;&lt;PK&gt;&gt;&lt;&lt;FK&gt;&gt;\r\n    --\r\n    assigned_at : TIMESTAMP\r\n}\r\n\r\nentity \"b\u00ecnh lu\u1eadn\" as comment {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * post_id : INT &lt;&lt;FK&gt;&gt;\r\n    author_name : VARCHAR(100)\r\n    * content : TEXT\r\n}\r\n\r\n' C\u1ea5u tr\u00fac li\u00ean k\u1ebft quan h\u1ec7\r\npost ||--o{ mapping : \"ch\u1ee9a\"\r\ncategory ||--o{ mapping : \"ph\u00e2n lo\u1ea1i\"\r\npost ||--o{ comment : \"\u0111\u00ednh k\u00e8m\"\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFDIiD054RtWRp39Hkr4AX2DqLAIubOjANK8BegqoGaGvEPc4p4qhfsxHjOfQ1YNo1Tk8WlaZTn-fEOf2hDCj_7pBdd9dMV8Oy5ZYqA5jODqB2dsOOe-4DCNEGX1yvR7KMzxYf0FMPHKH05Wp3CHY0DeYSCjpWEFva4o0UN-Wp6eW3yAG7MeGgjZWh7nzspMctzMfQJ60NyDA-VQPsahHBm2so39vUDNlEqqTi_gbGErfbl1-QlmO3g8nweofKg2lTPJXqH2vnuCTDMc1fYXaczqSwe13bPbiDoUNEbRlYQXrs6ATb2oX4Cul25c11DESXT74uXemvaA00wo7KnhwTyIx7z0cJULpBJVwra8EJxs2I6taTiwQlLLYxKHhjRH8u-E9GTnE6ShBLHn-7XpjQAq3yWczN_gPMFGmbRtfLRvnuqut0M0FEYK0CRH-y4XYk3Dm4YOCMB1r5OVOEJYIpJSUgn2fB6qpSaYKAw_EsEQqNF16pAzuEb_4d9xBprzHZDkPXXzEhmKjqWElzvlW40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFVQy8m4CVV0_aV3b-s2GKty4L4bD4nsHHnPMnF9Mj36soJabmVdFg_BxK_h9qRzYcN-tBtkU-bKuDCOvucbCGYv1087IIS4hCHCcEQfV0wNxhUvye5fJ5Mb5329GhSGYzJ1aqFc87Y13jAm7vz426COBxqO3nUlKmcvRNZr6cMsphQRwcU6bKVREc4sypxRFtuF5lVFWo7TsNE97bqCV6bmgrDUEw7HycXJHWmv97IWfUOLRYz6bMojCroFnXKBKDk0Yqo54h-GZfqFVBhldxAiap8gAIfWXFCKTiXEZUdAVIFggPdneX8yj1dM9WpNxXltconwZgaqjIUAt_Au6fxki0dY6h7V_fdHr4IYrvdUxk1DKzOuIfB815o0mPr7c2kkQ7a-ChsUyTHkyQyKJ62H2QawL7IBFY2gdeAtxmGjalLKriHGsH1V5HCkGpjR_43\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"uRrOAMH\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-602\" decoding=\"async\" height=\"293\" loading=\"lazy\" sizes=\"auto, (max-width: 495px) 100vw, 495px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a.png 495w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a-300x178.png 300w\" width=\"495\"\/><\/p>\n<p><strong>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p:<\/strong> M\u1eabu n\u00e0y m\u00f4 h\u00ecnh h\u00f3a m\u1ed1i quan h\u1ec7 nhi\u1ec1u-\u0111a kinh \u0111i\u1ec3n gi\u1eefa b\u00e0i vi\u1ebft v\u00e0 danh m\u1ee5c. Thay v\u00ec k\u1ebft n\u1ed1i ch\u00fang tr\u1ef1c ti\u1ebfp, n\u00f3 gi\u1edbi thi\u1ec7u m\u1ed9t b\u1ea3ng trung gian (<code>b\u1ea3ng \u00e1nh x\u1ea1 b\u00e0i vi\u1ebft - danh m\u1ee5c<\/code>), trong \u0111\u00f3 c\u1ea3 hai c\u1ed9t \u0111\u1ec1u \u0111\u00f3ng vai tr\u00f2 l\u00e0 kh\u00f3a ch\u00ednh h\u1ee3p th\u00e0nh. C\u00e1c k\u00fd hi\u1ec7u ch\u00e2n chim r\u00f5 r\u00e0ng \u00e1nh x\u1ea1 c\u00e1c m\u1ed1i quan h\u1ec7 lan truy\u1ec1n xu\u1ed1ng t\u1ea7ng b\u00ecnh lu\u1eadn.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0110i\u1ec3m quan tr\u1ecdng c\u1ee7a s\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3 (ERD) l\u00e0 g\u00ec? M\u1ed9t S\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3 (ERD) l\u00e0 b\u1ea3n v\u1ebd c\u1ea5u tr\u00fac \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 thi\u1ebft k\u1ebf, t\u00e0i li\u1ec7u h\u00f3a v\u00e0 ph\u00e2n t\u00edch c\u00e1c c\u01a1&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":10,"template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"ld_collection":[14],"class_list":["post-2111","ld_docs","type-ld_docs","status-publish","hentry","ld_collection-vpascode-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide<\/title>\n<meta name=\"description\" content=\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide\" \/>\n<meta property=\"og:description\" content=\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\",\"name\":\"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\",\"datePublished\":\"2026-05-26T07:38:24+00:00\",\"description\":\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lean Docs\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/%ld_collection%\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p ERD c\u1ee7a PlantUML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","og_locale":"vi_VN","og_type":"article","og_title":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","og_description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","og_url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","og_site_name":"VPasCode","og_image":[{"url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"4 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","name":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","datePublished":"2026-05-26T07:38:24+00:00","description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","contentUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/vn\/"},{"@type":"ListItem","position":2,"name":"Lean Docs","item":"https:\/\/www.vpascode.com\/vn\/docs\/%ld_collection%\/"},{"@type":"ListItem","position":3,"name":"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p ERD c\u1ee7a PlantUML"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/vn\/#website","url":"https:\/\/www.vpascode.com\/vn\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/vn\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_docs\/2111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_docs"}],"about":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/types\/ld_docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/users\/4"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2111"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_collection?post=2111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}