{"id":2016,"date":"2026-08-06T06:48:18","date_gmt":"2026-08-06T06:48:18","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/docs\/uncategorized\/d2-diagrams\/"},"modified":"2026-08-06T06:48:18","modified_gmt":"2026-08-06T06:48:18","slug":"d2-diagrams","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/","title":{"rendered":"S\u01a1 \u0111\u1ed3 D2"},"content":{"rendered":"<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c v\u00ed d\u1ee5 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ngay cho c\u00e1c s\u01a1 \u0111\u1ed3 ph\u1ea7n m\u1ec1m ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c t\u1ea1o b\u1eb1ng D2 trong VPasCode. B\u1ea1n c\u00f3 th\u1ec3 sao ch\u00e9p c\u00e1c \u0111o\u1ea1n m\u00e3 n\u00e0y tr\u1ef1c ti\u1ebfp v\u00e0o Tr\u00ecnh ch\u1ec9nh s\u1eeda Th\u1eddi gian th\u1ef1c c\u1ee7a VPasCode \u0111\u1ec3 t\u1ea1o ra c\u00e1c s\u01a1 \u0111\u1ed3 tr\u1ef1c quan s\u1ea1ch s\u1ebd ngay l\u1eadp t\u1ee9c.<\/p>\n<div class=\"callout\" style=\"background-color: #eff6ff; border-left: 4px solid #2563eb; padding: 1rem; border-radius: 4px; margin-bottom: 1.5rem;\"><strong>L\u01b0u \u00fd:<\/strong> B\u1ea1n c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp h\u01b0\u1edbng b\u1ed1 c\u1ee5c b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <code>direction: right<\/code> ho\u1eb7c <code>direction: down<\/code> \u1edf \u0111\u1ea7u kh\u1ed1i m\u00e3 D2 c\u1ee7a b\u1ea1n.<\/div>\n<h2 style=\"font-size: 1.5rem; font-weight: bold; color: #1f2937; margin-top: 2rem; margin-bottom: 1rem; border-left: 4px solid #4f46e5; padding-left: 0.75rem;\">1. S\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng<\/h2>\n<p>M\u1ed9t ki\u1ebfn tr\u00fac web \u0111\u00e1m m\u00e2y nhi\u1ec1u t\u1ea7ng v\u1edbi c\u00e1c m\u00e1y ch\u1ee7 v\u00e0 th\u00e0nh ph\u1ea7n l\u01b0u tr\u1eef l\u1ed3ng nhau.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">D2<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNqtks1ugzAMgO9IvINfoEjrkcOkjR6rqX\/Tzm7iQlREmBMqVRPvPgIsXdYcdughKI7tz9FHpGISVukmB1ZlZdMkTd4NcQ5faQJgKmwph5bY6CZNepf+oCO8tG2tBE6NY2Wxept3vkvUupPupHcft9YaJbxijY0g\/jkcWLAnvgwzPGGK4SmIlgFrhRbhoPxVATba2JJpv12PySMa8rnbpa61auQ0faYB7EgqAwWK6n8d\/azCmYLFM\/xRko0ydvTZkbEGNljSnTZXE2sNFA0Q3VmCA+PppMQ9JKiO4X7JzW5SH4FZRt5CdFyM539eFqgvKhLnKXgEO\/ogth3xdYy\/AVFE6yU=\" 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 D2 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\">D2<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNq1UrlOw0AQ7S35H+YHiERKFxQkHSHiiIQoE3tlr+Sso7UXyUKuUlBTIoRQiKIgGkKJt6Aw8n\/Mn7CbwyTYEWlS7KGZee\/N5VBO7IgGzAJOXS8yDdNou\/kM5RMFJ\/tkrgW3pgEQet0BsWBAeBgw00h0IMpX5oKDcqKeK9Jbhjaa7eWvgNl+IBxtSfSlzzHKB7CzFwY9TD8UPsJ0TFfe02wUg+2hnMK6SEG75j8sWeobQh1Mp4qgifIdfIryThQsjXwEIcpnzb5ywlkQRi4nl+etIu63jNinzCF8YU4Wz7wSppQf4fteUfThgjg03AmdLDu52XI4OIK\/va3Nu3qdvQmwVUUCOrzL3PIMdFwlvrrhFjQ8EaMcMogopl8DaOUzAb5OZ1zJX81TKbllirXN6e1ZoV61qTulVqlYXqfa1gU4Uf5hHyLeLS\/JnnP6d7U7XMRwg+mEreN+AMi9uPk=\" \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 D2 in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-d2\"><code class=\"language-d2\" data-language=\"d2\" class=\"language-d2\">direction: right\r\n\r\nNg\u01b0\u1eddi d\u00f9ng: {\r\n  shape: person\r\n}\r\n\r\n\u1ee8ng d\u1ee5ng Web: {\r\n  CDN: {\r\n    shape: cloud\r\n  }\r\n  \r\n  B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i\r\n  \r\n  M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng: {\r\n    M\u00e1y ch\u1ee7 1\r\n    M\u00e1y ch\u1ee7 2\r\n  }\r\n  \r\n  T\u1ea7ng D\u1eef li\u1ec7u: {\r\n    C\u01a1 s\u1edf d\u1eef li\u1ec7u PostgreSQL: {\r\n      shape: cylinder\r\n    }\r\n    B\u1ed9 nh\u1edb \u0111\u1ec7m Redis: {\r\n      shape: cylinder\r\n    }\r\n  }\r\n}\r\n\r\nNg\u01b0\u1eddi d\u00f9ng -&gt; \u1ee8ng d\u1ee5ng Web.CDN: Y\u00eau c\u1ea7u Trang\r\n\u1ee8ng d\u1ee5ng Web.CDN -&gt; \u1ee8ng d\u1ee5ng Web.B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i: Chuy\u1ec3n ti\u1ebfp L\u01b0u l\u01b0\u1ee3ng\r\n\u1ee8ng d\u1ee5ng Web.B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i -&gt; \u1ee8ng d\u1ee5ng Web.M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng.M\u00e1y ch\u1ee7 1\r\n\u1ee8ng d\u1ee5ng Web.B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i -&gt; \u1ee8ng d\u1ee5ng Web.M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng.M\u00e1y ch\u1ee7 2\r\n\r\n\u1ee8ng d\u1ee5ng Web.M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng.M\u00e1y ch\u1ee7 1 -&gt; \u1ee8ng d\u1ee5ng Web.T\u1ea7ng D\u1eef li\u1ec7u.B\u1ed9 nh\u1edb \u0111\u1ec7m Redis: Ki\u1ec3m tra B\u1ed9 nh\u1edb \u0111\u1ec7m\r\n\u1ee8ng d\u1ee5ng Web.M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng.M\u00e1y ch\u1ee7 1 -&gt; \u1ee8ng d\u1ee5ng Web.T\u1ea7ng D\u1eef li\u1ec7u.C\u01a1 s\u1edf d\u1eef li\u1ec7u PostgreSQL: Truy v\u1ea5n D\u1eef li\u1ec7u<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNq1UrlOw0AQ7S35H+YHiERKFxQkHSHiiIQoE3tlr+Sso7UXyUKuUlBTIoRQiKIgGkKJt6Aw8n\/Mn7CbwyTYEWlS7KGZee\/N5VBO7IgGzAJOXS8yDdNou\/kM5RMFJ\/tkrgW3pgEQet0BsWBAeBgw00h0IMpX5oKDcqKeK9Jbhjaa7eWvgNl+IBxtSfSlzzHKB7CzFwY9TD8UPsJ0TFfe02wUg+2hnMK6SEG75j8sWeobQh1Mp4qgifIdfIryThQsjXwEIcpnzb5ywlkQRi4nl+etIu63jNinzCF8YU4Wz7wSppQf4fteUfThgjg03AmdLDu52XI4OIK\/va3Nu3qdvQmwVUUCOrzL3PIMdFwlvrrhFjQ8EaMcMogopl8DaOUzAb5OZ1zJX81TKbllirXN6e1ZoV61qTulVqlYXqfa1gU4Uf5hHyLeLS\/JnnP6d7U7XMRwg+mEreN+AMi9uPk=\" \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 D2 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\/#d2:eNqtks1ugzAMgO9IvINfoEjrkcOkjR6rqX\/Tzm7iQlREmBMqVRPvPgIsXdYcdughKI7tz9FHpGISVukmB1ZlZdMkTd4NcQ5faQJgKmwph5bY6CZNepf+oCO8tG2tBE6NY2Wxept3vkvUupPupHcft9YaJbxijY0g\/jkcWLAnvgwzPGGK4SmIlgFrhRbhoPxVATba2JJpv12PySMa8rnbpa61auQ0faYB7EgqAwWK6n8d\/azCmYLFM\/xRko0ydvTZkbEGNljSnTZXE2sNFA0Q3VmCA+PppMQ9JKiO4X7JzW5SH4FZRt5CdFyM539eFqgvKhLnKXgEO\/ogth3xdYy\/AVFE6yU=\" 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 D2 trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"MuBoEDG\"><img fetchpriority=\"high\" alt=\"D2 multi-tier cloud web system architecture featuring CDN, Load Balancer, App Servers, PostgreSQL, and Redis - Text to diagram editor - VPasCode\" class=\"alignnone wp-image-1930 size-full\" decoding=\"async\" fetchpriority=\"high\" height=\"721\" sizes=\"(max-width: 1934px) 100vw, 1934px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png 1934w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855-300x112.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855-1024x382.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855-768x286.png 768w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855-1536x573.png 1536w\" width=\"1934\"\/><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"font-size: 1.5rem; font-weight: bold; color: #1f2937; margin-top: 2rem; margin-bottom: 1rem; border-left: 4px solid #4f46e5; padding-left: 0.75rem;\">2. S\u01a1 \u0111\u1ed3 C\u01a1 s\u1edf d\u1eef li\u1ec7u (S\u01a1 \u0111\u1ed3 B\u1ea3ng SQL)<\/h2>\n<p>D2 c\u00f3 h\u1ed7 tr\u1ee3 t\u00edch h\u1ee3p \u0111\u1ec3 hi\u1ec3n th\u1ecb c\u00e1c b\u1ea3ng SQL v\u00e0 m\u1ed1i quan h\u1ec7 th\u1ef1c th\u1ec3 m\u1ed9t c\u00e1ch s\u1ea1ch s\u1ebd b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <code>sql_table<\/code> ki\u1ec3u h\u00ecnh.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">D2<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNqtkE1uAjEMhfcjzR1ygRmp21lwg54hchMDVvMz2E6lEeLuJEAHKlhUanfRy\/Pz51cEWSZz7DtjZA8zTkYOwSp8BGwa+clQUnN0OYky1PdkZqYIvNhPXE7NVGpIglhnv4DdHriJGIHCD8UxgqK3UCOUIopCnPuuRvRdZv9PIPalc5sZaZdWp2aFYCHm0n49uhoULrsVtMgD9x3PkmL8M+Mt6jeQM2dfnNqnbg8FkpIul4wbYrtdRvJm2Fx3yLjW8TZoHt4hLd9FP\/quZ413rtV9Bl06tnk=\" 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 D2 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\">D2<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNqtkL1tAzEMhfsDbgctcAekvcIjZAWBkRgfYf2cKSrAwUjhEbxOUqTxIt4kku3Yzk8RIOmEp8fHjy8n5DSoTdsolUaYcFBp7bTAg8OqkR0UBVEbE0MShvIe1MTkgWe9wvm5mnIJCeDL7BOwGYGriB7IfVIMIwhaDSVCyGMS8FPblIi2iWz\/CUT\/6HyMjLQMF6dEAafBx1x\/LZoS5I67BSSnG+4rniZB\/2fGc9RvICeONhvR37pdZwhCMh8zzoj19tSTVd3itCP1lzruuv3u8PIWuvuRDq\/b\/NH3rf10XX\/F+zr0DknHwSU=\" \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 D2 in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-d2\"><code class=\"language-d2\" data-language=\"d2\" class=\"language-d2\">users: {\r\n  shape: sql_table\r\n  id: int {constraint: primary_key}\r\n  username: varchar\r\n  email: varchar\r\n  created_at: timestamp\r\n}\r\n\r\norders: {\r\n  shape: sql_table\r\n  id: int {constraint: primary_key}\r\n  user_id: int {constraint: foreign_key}\r\n  total_amount: decimal\r\n  status: varchar\r\n}\r\n\r\norder_items: {\r\n  shape: sql_table\r\n  id: int {constraint: primary_key}\r\n  order_id: int {constraint: foreign_key}\r\n  product_name: varchar\r\n  quantity: int\r\n}\r\n\r\nusers.id -&gt; orders.user_id: 1-\u0111\u1ebfn-Nhi\u1ec1u\r\norders.id -&gt; order_items.order_id: 1-\u0111\u1ebfn-Nhi\u1ec1u<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNqtkL1tAzEMhfsDbgctcAekvcIjZAWBkRgfYf2cKSrAwUjhEbxOUqTxIt4kku3Yzk8RIOmEp8fHjy8n5DSoTdsolUaYcFBp7bTAg8OqkR0UBVEbE0MShvIe1MTkgWe9wvm5mnIJCeDL7BOwGYGriB7IfVIMIwhaDSVCyGMS8FPblIi2iWz\/CUT\/6HyMjLQMF6dEAafBx1x\/LZoS5I67BSSnG+4rniZB\/2fGc9RvICeONhvR37pdZwhCMh8zzoj19tSTVd3itCP1lzruuv3u8PIWuvuRDq\/b\/NH3rf10XX\/F+zr0DknHwSU=\" \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 D2 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\/#d2:eNqtkE1uAjEMhfcjzR1ygRmp21lwg54hchMDVvMz2E6lEeLuJEAHKlhUanfRy\/Pz51cEWSZz7DtjZA8zTkYOwSp8BGwa+clQUnN0OYky1PdkZqYIvNhPXE7NVGpIglhnv4DdHriJGIHCD8UxgqK3UCOUIopCnPuuRvRdZv9PIPalc5sZaZdWp2aFYCHm0n49uhoULrsVtMgD9x3PkmL8M+Mt6jeQM2dfnNqnbg8FkpIul4wbYrtdRvJm2Fx3yLjW8TZoHt4hLd9FP\/quZ413rtV9Bl06tnk=\" 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 D2 trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"ZudMSUn\"><img alt=\"D2 SQL table ERD diagram showing 1-to-Many entity relationships between users, orders, and order_items - Text to diagram editor - VPasCode\" class=\"alignnone wp-image-1931 size-full\" decoding=\"async\" height=\"984\" sizes=\"(max-width: 483px) 100vw, 483px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ed5d251c.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ed5d251c.png 483w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ed5d251c-147x300.png 147w\" width=\"483\"\/><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"font-size: 1.5rem; font-weight: bold; color: #1f2937; margin-top: 2rem; margin-bottom: 1rem; border-left: 4px solid #4f46e5; padding-left: 0.75rem;\">3. \u0110\u01b0\u1eddng \u1ed1ng tri\u1ec3n khai t\u1ef1 \u0111\u1ed9ng (CI\/CD)<\/h2>\n<p>Li\u1ec7t k\u00ea c\u00e1c b\u01b0\u1edbc tri\u1ec3n khai ph\u1ea7n m\u1ec1m t\u1eeb vi\u1ec7c ki\u1ec3m tra m\u00e3 ngu\u1ed3n \u0111\u1ebfn ph\u00e1t h\u00e0nh s\u1ea3n ph\u1ea9m tr\u1ef1c ti\u1ebfp.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">D2<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNplj00KwjAQRveF3mEuYMCfVRaCWlB3xfYCtRliMDZhkhSKeHfTFkrE5QzzvfeNUIStV6bjQEo+fJ7lWYE9amORYLWHs\/KXcOewZlAG94CTETgezXsolUWtOnQc3nkGcAxKC6g82jFco\/PLUJj2GZnXVyMj4ZNAFk2K2zCoYyUZI4ep4b+TpchEcUOpnKeBw5ZFvSGce03P\/Z6MqZKMCJMCKqQeicOOQYFWmyH+2\/kmyugLmf5fqw==\" 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 D2 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\">D2<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNptkL9KA0EQh\/uDe4ffC7igsdrCQoUEzoighW3cHLdL4m5Y98AgVj6BpdjkD2IVjO1tuZL3mDdxF2M40PY3M998M0NlS+GU0RxWVdLlWZ6dyzDDRIa5g7OK\/JPG3hG6yvXqG459hi75lUI\/LFP3T44LNSnHSpd3HA95Bhxv1uRfBa7DYooh+U9dJcpvXCTuLZyMqJRTs9ASp0aMSptnjy3wbnV7xQFDEVZCQhpqomcvzOL41zP5F139dWJtfCIW0mC8WdfxQPIf2wJHh+EspS3pZPJvd8L0w3wKEW94xyU1S437mpo3x3HIcLV93UgOFE6MdoNoYr8BfD6S0Q==\" \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 D2 in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-d2\"><code class=\"language-d2\" data-language=\"d2\" class=\"language-d2\">direction: right\r\n\r\nNh\u00e0 ph\u00e1t tri\u1ec3n -&gt; GitHub: 1. G\u1eedi M\u00e3\r\n\r\nGitHub Pipelines: {\r\n  B\u01b0\u1edbc X\u00e2y d\u1ef1ng -&gt; B\u01b0\u1edbc Ki\u1ec3m th\u1eed -&gt; \u1ea2nh Docker\r\n}\r\n\r\nGitHub -&gt; GitHub Pipelines: 2. K\u00edch ho\u1ea1t H\u00e0nh \u0111\u1ed9ng\r\nGitHub Pipelines.\u1ea2nh Docker -&gt; Kho l\u01b0u tr\u1eef Docker: 3. L\u01b0u X\u00e2y d\u1ef1ng\r\n\r\nKho l\u01b0u tr\u1eef Docker -&gt; M\u00e1y ch\u1ee7 S\u1ea3n xu\u1ea5t: 4. Tri\u1ec3n khai Container<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#d2:eNptkL9KA0EQh\/uDe4ffC7igsdrCQoUEzoighW3cHLdL4m5Y98AgVj6BpdjkD2IVjO1tuZL3mDdxF2M40PY3M998M0NlS+GU0RxWVdLlWZ6dyzDDRIa5g7OK\/JPG3hG6yvXqG459hi75lUI\/LFP3T44LNSnHSpd3HA95Bhxv1uRfBa7DYooh+U9dJcpvXCTuLZyMqJRTs9ASp0aMSptnjy3wbnV7xQFDEVZCQhpqomcvzOL41zP5F139dWJtfCIW0mC8WdfxQPIf2wJHh+EspS3pZPJvd8L0w3wKEW94xyU1S437mpo3x3HIcLV93UgOFE6MdoNoYr8BfD6S0Q==\" \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 D2 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\/#d2:eNplj00KwjAQRveF3mEuYMCfVRaCWlB3xfYCtRliMDZhkhSKeHfTFkrE5QzzvfeNUIStV6bjQEo+fJ7lWYE9amORYLWHs\/KXcOewZlAG94CTETgezXsolUWtOnQc3nkGcAxKC6g82jFco\/PLUJj2GZnXVyMj4ZNAFk2K2zCoYyUZI4ep4b+TpchEcUOpnKeBw5ZFvSGce03P\/Z6MqZKMCJMCKqQeicOOQYFWmyH+2\/kmyugLmf5fqw==\" 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 D2 trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"jQjdDpo\"><img alt=\"D2 CI\/CD automated deployment workflow diagram mapping code push from GitHub to Docker Registry and Production Server - Text to diagram editor - VPasCode\" class=\"alignnone wp-image-1932 size-full\" decoding=\"async\" height=\"347\" sizes=\"(max-width: 2560px) 100vw, 2560px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-scaled.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-scaled.png 2560w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-300x41.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-1024x139.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-768x104.png 768w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-1536x208.png 1536w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742ef333af0-2048x278.png 2048w\" width=\"2560\"\/><\/p>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c v\u00ed d\u1ee5 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ngay cho c\u00e1c s\u01a1 \u0111\u1ed3 ph\u1ea7n m\u1ec1m ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c t\u1ea1o b\u1eb1ng D2 trong VPasCode. B\u1ea1n c\u00f3 th\u1ec3 sao ch\u00e9p c\u00e1c \u0111o\u1ea1n m\u00e3 n\u00e0y tr\u1ef1c ti\u1ebfp v\u00e0o Tr\u00ecnh ch\u1ec9nh s\u1eeda&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":999,"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-2016","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>How to Create D2 Diagrams | Text to Diagram VPasCode<\/title>\n<meta name=\"description\" content=\"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.\" \/>\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\/d2-diagrams\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create D2 Diagrams | Text to Diagram VPasCode\" \/>\n<meta property=\"og:description\" content=\"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.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=\"2 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\\\/d2-diagrams\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/\",\"name\":\"How to Create D2 Diagrams | Text to Diagram VPasCode\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/img_6a742eae00855.png\",\"datePublished\":\"2026-08-06T06:48:18+00:00\",\"description\":\"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/img_6a742eae00855.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/img_6a742eae00855.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/d2-diagrams\\\/#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\":\"S\u01a1 \u0111\u1ed3 D2\"}]},{\"@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":"How to Create D2 Diagrams | Text to Diagram VPasCode","description":"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.","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\/d2-diagrams\/","og_locale":"vi_VN","og_type":"article","og_title":"How to Create D2 Diagrams | Text to Diagram VPasCode","og_description":"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.","og_url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/","og_site_name":"VPasCode","og_image":[{"url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"2 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/","url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/","name":"How to Create D2 Diagrams | Text to Diagram VPasCode","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png","datePublished":"2026-08-06T06:48:18+00:00","description":"Build clear software diagrams in seconds using D2. Access ready-to-use templates for cloud architecture, database tables, and deployment workflows.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/#primaryimage","url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png","contentUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a742eae00855.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/d2-diagrams\/#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":"S\u01a1 \u0111\u1ed3 D2"}]},{"@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\/2016","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\/3"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2016"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_collection?post=2016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}