{"id":2210,"date":"2026-08-18T07:03:18","date_gmt":"2026-08-18T07:03:18","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/"},"modified":"2026-08-18T07:03:18","modified_gmt":"2026-08-18T07:03:18","slug":"building-a-hotel-management-erd-with-plantuml-and-vpascode","status":"publish","type":"post","link":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/","title":{"rendered":"X\u00e2y d\u1ef1ng s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n b\u1eb1ng PlantUML v\u00e0 VPasCode"},"content":{"rendered":"<p><img loading=\"lazy\" alt='A YouTube thumbnail-style graphic featuring the bold text \"BUILD PROFESSIONAL DATABASE DIAGRAMS\" in large uppercase letters, with a pointing finger icon on the right and a rendered Entity Relationship Diagram displayed in the background.' class=\"alignnone size-full wp-image-2717\" decoding=\"async\" height=\"768\" loading=\"lazy\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/build-professional-database-diagrams-thumbnail.jpg\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/build-professional-database-diagrams-thumbnail.jpg 1376w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/build-professional-database-diagrams-thumbnail-300x167.jpg 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/build-professional-database-diagrams-thumbnail-1024x572.jpg 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/build-professional-database-diagrams-thumbnail-768x429.jpg 768w\" width=\"1376\"\/><\/p>\n<p>Khi thi\u1ebft k\u1ebf c\u00e1c ki\u1ebfn tr\u00fac c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u1eefng ch\u1eafc cho c\u00e1c l\u0129nh v\u1ef1c ph\u1ee9c t\u1ea1p nh\u01b0 ng\u00e0nh kh\u00e1ch s\u1ea1n, vi\u1ec7c tr\u1ef1c quan h\u00f3a c\u00e1c m\u1ed1i quan h\u1ec7 m\u1ed9t c\u00e1ch r\u00f5 r\u00e0ng l\u00e0 \u0111i\u1ec1u then ch\u1ed1t. D\u00f9 b\u1ea1n \u0111ang \u00e1nh x\u1ea1 h\u1ed3 s\u01a1 kh\u00e1ch h\u00e0ng, theo d\u00f5i t\u1ed3n kho ph\u00f2ng, hay qu\u1ea3n l\u00fd h\u00f3a \u0111\u01a1n, m\u1ed9t s\u01a1 \u0111\u1ed3 Entity Relationship Diagram (ERD) \u0111\u01b0\u1ee3c c\u1ea5u tr\u00fac t\u1ed1t s\u1ebd ti\u1ebft ki\u1ec7m v\u00f4 s\u1ed1 gi\u1edd trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n. Trong kh\u00f3a h\u1ecdc chuy\u00ean s\u00e2u n\u00e0y, t\u00f4i s\u1ebd h\u01b0\u1edbng d\u1eabn b\u1ea1n c\u00e1ch t\u00f4i x\u00e2y d\u1ef1ng m\u1ed9t s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n to\u00e0n di\u1ec7n t\u1eeb \u0111\u1ea7u b\u1eb1ng PlantUML b\u00ean trong <a href=\"https:\/\/www.vpascode.com\/editor\/\">tr\u00ecnh so\u1ea1n th\u1ea3o PlantUML mi\u1ec5n ph\u00ed<\/a>, <a href=\"https:\/\/vpascode.com\/\">VPasCode<\/a>.<\/p>\n<p id=\"LzlMgfr\"><img loading=\"lazy\" alt=\"Hotel Management ERD diagram showing relationships between Customer, Room, Reservation, Payment, and Staff entities.\" class=\"alignnone size-full wp-image-2661\" decoding=\"async\" height=\"738\" loading=\"lazy\" sizes=\"auto, (max-width: 1508px) 100vw, 1508px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83fec0372f7.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83fec0372f7.png 1508w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83fec0372f7-300x147.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83fec0372f7-1024x501.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83fec0372f7-768x376.png 768w\" width=\"1508\"\/><\/p>\n<h2>1. Kh\u1edfi t\u1ea1o m\u00f4i tr\u01b0\u1eddng PlantUML<\/h2>\n<p>T\u00f4i b\u1eaft \u0111\u1ea7u b\u1eb1ng vi\u1ec7c thi\u1ebft l\u1eadp c\u1ea5u tr\u00fac n\u1ec1n t\u1ea3ng c\u1ee7a t\u1eadp l\u1ec7nh. Khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c l\u01b0\u1ee3c \u0111\u1ed3 ph\u1ee9c t\u1ea1p ch\u1ee9a nhi\u1ec1u thu\u1ed9c t\u00ednh, kh\u1ea3 n\u0103ng \u0111\u1ecdc \u0111\u01b0\u1ee3c b\u1ed1 c\u1ee5c l\u00e0 y\u1ebfu t\u1ed1 quan tr\u1ecdng nh\u1ea5t. T\u00f4i c\u1ea5u h\u00ecnh PlantUML \u0111\u1ec3 \u1ea9n c\u00e1c chi ti\u1ebft th\u1eeba v\u00e0 t\u1ed1i \u01b0u h\u00f3a h\u01b0\u1edbng b\u1ed1 c\u1ee5c c\u1ee7a s\u01a1 \u0111\u1ed3:<\/p>\n<pre><code class=\"language-plantuml\">\r\n@startuml \r\ntitle S\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n\r\n\r\nhide circle\r\nleft to right direction\r\n    <\/code><\/pre>\n<p><strong>T\u1ea1i sao l\u1ea1i ch\u1ecdn c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y?<\/strong> Vi\u1ec7c \u1ea9n c\u00e1c v\u00f2ng tr\u00f2n thu\u1ed9c t\u00ednh m\u1eb7c \u0111\u1ecbnh gi\u00fap c\u00e1c h\u1ed9p th\u1ef1c th\u1ec3 tr\u1edf n\u00ean s\u1ea1ch s\u1ebd v\u00e0 hi\u1ec7n \u0111\u1ea1i. Vi\u1ec7c \u0111\u1eb7t h\u01b0\u1edbng th\u00e0nh <code>h\u01b0\u1edbng t\u1eeb tr\u00e1i sang ph\u1ea3i<\/code> gi\u00fap ng\u0103n ng\u1eeba c\u00e1c s\u01a1 \u0111\u1ed3 ERD r\u1ed9ng tr\u1edf n\u00ean kh\u00f3 qu\u1ea3n l\u00fd theo chi\u1ec1u d\u1ecdc, \u0111\u1ed3ng th\u1eddi ph\u00e2n b\u1ed1 c\u00e1c m\u1ed1i quan h\u1ec7 \u0111a b\u1ea3ng m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd.<\/p>\n<h2>2. \u0110\u1ecbnh ngh\u0129a c\u00e1c th\u1ef1c th\u1ec3 c\u1ed1t l\u00f5i v\u00e0 thu\u1ed9c t\u00ednh<\/h2>\n<p>Ti\u1ebfp theo, t\u00f4i c\u1ea7n \u0111\u1ecbnh ngh\u0129a c\u00e1c th\u1ef1c th\u1ec3 c\u1ed1t l\u00f5i \u0111\u1ea1i di\u1ec7n cho l\u0129nh v\u1ef1c kinh doanh c\u1ee7a ch\u00fang ta. T\u00f4i c\u1ea5u tr\u00fac m\u1ed7i th\u1ef1c th\u1ec3 v\u1edbi c\u00e1c kh\u00f3a ch\u00ednh, r\u00e0ng bu\u1ed9c duy nh\u1ea5t v\u00e0 c\u00e1c thu\u1ed9c t\u00ednh c\u00f3 ki\u1ec3u d\u1eef li\u1ec7u. H\u00e3y c\u00f9ng xem c\u00e1ch t\u00f4i thi\u1ebft l\u1eadp c\u00e1c th\u1ef1c th\u1ec3 c\u1ed1t l\u00f5i <code>Kh\u00e1ch h\u00e0ng<\/code> v\u00e0 <code>Lo\u1ea1i ph\u00f2ng<\/code> th\u1ef1c th\u1ec3:<\/p>\n<pre><code class=\"language-plantuml\">\r\nentity \"Kh\u00e1ch h\u00e0ng\" as customer {\r\n  * customer_id : UUID &lt;&lt;PK&gt;&gt;\r\n  --\r\n  first_name : VARCHAR(50)\r\n  last_name : VARCHAR(50)\r\n  email : VARCHAR(100) &lt;&lt;UK&gt;&gt;\r\n  phone : VARCHAR(20)\r\n  address : TEXT\r\n  loyalty_points : INTEGER\r\n  total_stays : INTEGER\r\n  date_registered : TIMESTAMP\r\n  date_of_birth : DATE\r\n  nationality : VARCHAR(50)\r\n}\r\n\r\nentity \"Lo\u1ea1i ph\u00f2ng\" as roomtype {\r\n  * room_type_id : UUID &lt;&lt;PK&gt;&gt;\r\n  --\r\n  type_name : VARCHAR(50) &lt;&lt;UK&gt;&gt;\r\n  description : TEXT\r\n  standard_capacity : INTEGER\r\n  base_price : DECIMAL(10,2)\r\n  extra_bed_charge : DECIMAL(10,2)\r\n  has_kitchenette : BOOLEAN\r\n  has_balcony : BOOLEAN\r\n}\r\n    <\/code><\/pre>\n<p>B\u1eb1ng c\u00e1ch \u0111\u1ecbnh ngh\u0129a c\u00e1c d\u1ea5u hi\u1ec7u r\u00f5 r\u00e0ng nh\u01b0 <code>&lt;&lt;PK&gt;&gt;<\/code> v\u00e0 <code>&lt;&lt;UK&gt;&gt;<\/code>, b\u1ea5t k\u1ef3 ai xem x\u00e9t m\u00e3 \u0111\u1ec1u c\u00f3 th\u1ec3 hi\u1ec3u ngay l\u1eadp t\u1ee9c v\u1ec1 c\u00e1c quy t\u1eafc ch\u1ec9 m\u1ee5c v\u00e0 t\u00ednh duy nh\u1ea5t tr\u01b0\u1edbc khi c\u00e1c t\u1eadp l\u1ec7nh di chuy\u1ec3n c\u01a1 s\u1edf d\u1eef li\u1ec7u th\u1eadm ch\u00ed \u0111\u01b0\u1ee3c vi\u1ebft ra.<\/p>\n<h2>3. \u00c1nh x\u1ea1 c\u00e1c th\u1ef1c th\u1ec3 v\u1eadn h\u00e0nh (Ph\u00f2ng, \u0110\u1eb7t ph\u00f2ng v\u00e0 Nh\u00e2n vi\u00ean)<\/h2>\n<p>V\u1edbi d\u1eef li\u1ec7u tham chi\u1ebfu \u0111\u00e3 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp, t\u00f4i chuy\u1ec3n sang ph\u1ea7n l\u00f5i giao d\u1ecbch c\u1ee7a h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n: ph\u00f2ng, \u0111\u1eb7t ph\u00f2ng v\u00e0 quy tr\u00ecnh l\u00e0m vi\u1ec7c c\u1ee7a nh\u00e2n vi\u00ean. M\u1ed7i th\u1ef1c th\u1ec3 li\u00ean k\u1ebft ng\u01b0\u1ee3c l\u1ea1i c\u00e1c b\u1ea3ng n\u1ec1n t\u1ea3ng c\u1ee7a ch\u00fang ta th\u00f4ng qua c\u00e1c kh\u00f3a ngo\u1ea1i:<\/p>\n<pre><code class=\"language-plantuml\">\r\nentity \"Ph\u00f2ng\" as room {\r\n  * room_id : UUID &lt;&lt;PK&gt;&gt;\r\n  --\r\n  room_number : VARCHAR(10) &lt;&lt;UK&gt;&gt;\r\n  floor_number : INTEGER\r\n  room_type_id : UUID &lt;&lt;FK&gt;&gt;\r\n  capacity : INTEGER\r\n  base_price : DECIMAL(10,2)\r\n  is_available : BOOLEAN\r\n  has_view : BOOLEAN\r\n  square_feet : INTEGER\r\n  last_renovated : DATE\r\n}\r\n\r\nentity \"\u0110\u1eb7t ph\u00f2ng\" as reservation {\r\n  * reservation_id : UUID &lt;&lt;PK&gt;&gt;\r\n  --\r\n  customer_id : UUID &lt;&lt;FK&gt;&gt;\r\n  room_id : UUID &lt;&lt;FK&gt;&gt;\r\n  check_in_date : DATE\r\n  check_out_date : DATE\r\n  number_of_guests : INTEGER\r\n  total_amount : DECIMAL(10,2)\r\n  status : VARCHAR(20)\r\n  special_requests : TEXT\r\n  created_at : TIMESTAMP\r\n  updated_at : TIMESTAMP\r\n  confirmation_code : VARCHAR(20) &lt;&lt;UK&gt;&gt;\r\n}\r\n    <\/code><\/pre>\n<h2>4. Thi\u1ebft l\u1eadp c\u00e1c m\u1ed1i quan h\u1ec7 t\u00e0i ch\u00ednh v\u00e0 d\u1ecbch v\u1ee5<\/h2>\n<p>\u0110\u1ec3 ho\u00e0n thi\u1ec7n ki\u1ebfn tr\u00fac, t\u00f4i \u00e1nh x\u1ea1 c\u00e1c b\u1ea3n ghi thanh to\u00e1n (Thanh to\u00e1n v\u00e0 H\u00f3a \u0111\u01a1n) c\u00f9ng v\u1edbi c\u00e1c d\u1ecbch v\u1ee5 ph\u1ee5 tr\u1ee3 nh\u01b0 D\u1ecbch v\u1ee5 ph\u00f2ng do nh\u00e2n vi\u00ean kh\u00e1ch s\u1ea1n \u0111\u1ea3m nhi\u1ec7m. \u0110\u1ec3 k\u1ebft n\u1ed1i m\u1ecdi th\u1ee9 l\u1ea1i v\u1edbi nhau, t\u00f4i \u0111\u1ecbnh ngh\u0129a r\u00f5 r\u00e0ng t\u00ednh \u0111a tr\u1ecb (cardinality) b\u1eb1ng k\u00fd hi\u1ec7u PlantUML ti\u00eau chu\u1ea9n:<\/p>\n<pre><code class=\"language-plantuml\">\r\n' C\u00e1c m\u1ed1i quan h\u1ec7\r\ncustomer ||--o{ reservation : \"t\u1ea1o ra\"\r\nroom ||--o{ reservation : \"\u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh cho\"\r\nreservation ||--|| payment : \"c\u00f3\"\r\nreservation ||--|| invoice : \"t\u1ea1o ra\"\r\nreservation ||--o{ roomservice : \"y\u00eau c\u1ea7u\"\r\nstaff ||--o{ roomservice : \"th\u1ef1c hi\u1ec7n\"\r\nroomtype ||--o{ room : \"ph\u00e2n lo\u1ea1i\"\r\n\r\n@enduml\r\n    <\/code><\/pre>\n<p><strong>L\u1ef1a ch\u1ecdn thi\u1ebft k\u1ebf:<\/strong> S\u1eed d\u1ee5ng k\u00fd hi\u1ec7u ch\u00e2n qu\u1ea1 ch\u00ednh x\u00e1c (ch\u1eb3ng h\u1ea1n nh\u01b0 &#8220;<code>||--o{<\/code> \u0111\u1ed1i v\u1edbi c\u00e1c m\u1ed1i quan h\u1ec7 m\u1ed9t-nhi\u1ec1u b\u1eaft bu\u1ed9c \u0111\u1ebfn t\u00f9y ch\u1ecdn) \u0111\u1ea3m b\u1ea3o c\u00e1c quy t\u1eafc logic nghi\u1ec7p v\u1ee5\u2014ch\u1eb3ng h\u1ea1n nh\u01b0 m\u1ed9t \u0111\u1eb7t ph\u00f2ng y\u00eau c\u1ea7u m\u1ed9t kh\u00e1ch h\u00e0ng, nh\u01b0ng m\u1ed9t kh\u00e1ch h\u00e0ng c\u00f3 th\u1ec3 c\u00f3 nhi\u1ec1u ho\u1eb7c kh\u00f4ng c\u00f3 \u0111\u1eb7t ph\u00f2ng n\u00e0o \u0111ang ho\u1ea1t \u0111\u1ed9ng\u2014\u0111\u01b0\u1ee3c m\u00f4 h\u00ecnh h\u00f3a ch\u00ednh x\u00e1c.<\/p>\n<section class=\"post-section\">\u00a0<\/section>\n<hr \/>\n<h2>K\u1ecbch b\u1ea3n PlantUML ho\u00e0n ch\u1ec9nh<\/h2>\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u00e3 ngu\u1ed3n \u0111\u1ea7y \u0111\u1ee7, \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ed5ng h\u1ee3p cho s\u01a1 \u0111\u1ed3 th\u1ef1c th\u1ec3-quan h\u1ec7 (ERD) qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n c\u1ee7a ch\u00fang t\u00f4i. B\u1ea1n c\u00f3 th\u1ec3 sao ch\u00e9p v\u00e0 d\u00e1n m\u00e3 n\u00e0y tr\u1ef1c ti\u1ebfp v\u00e0o c\u00f4ng c\u1ee5 PlantUML mi\u1ec5n ph\u00ed y\u00eau th\u00edch c\u1ee7a m\u00ecnh<strong>c\u00f4ng c\u1ee5 PlantUML mi\u1ec5n ph\u00ed<\/strong> \u0111\u1ec3 ch\u1ec9nh s\u1eeda ho\u1eb7c hi\u1ec3n th\u1ecb \u0111\u1ed3 h\u1ecda vector:<\/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:nPRVRzis4CVV3VX_8FAojLY0BCDUWcAe5nkhWQOj77VO6t6MJXOHYbJ9arklwV--8sKfaYKLQ5xs8eZy7dzzxex7rvx0KLLeCP_DPwH8etXZ2RMu0mDxBD2GM6sMGSrLYY9HBj4udsdCI90LJkrp4gboc92o9jZz99QOAOE2nofIwCLdHRa08gTs5Q6Vpw9o51UtbITReBiGu4LoQeYlyvaGBzksLAcu4Hy_hfVYrHz1khmCtqmvJz90WQp-lTZSlbbiVlxzwaNGD4nAM83IdUvVhwvUdEOjSskw8wxh4P2c3hrdORlwPnkdjqVGT9IbLOQ2i7wtNVsrsWIDB86MZFLu9gH0A1tkbITq68wqNT-jxhUBkm-jR3EvKuvXtOZbOhiA_GO2Lz21rzbXlWNQ3SgDjKN4wFYdGHZ-9_15oLJ5Ze5tQJGmCcsjUpBe72IEf6E9WvaJA26fDzgntu57MJgL1BRBrUtwRl6M5_hbEj9LNiA1NG8x7VG_txz_krgy2qeENXuKVkxt-ayLE9GP8lMNYJvtQEo1IQOjmG6aBU-y1HMEqOCrUgwQM9I6GNMoIT4dJfN1MPr8uJWmARXKFWSDVY47SeSyEWUt7xK9a1uK9JaQ91eXk0ETM7Fi2dqawD4TOf3LL9xQBPYdhWaqawaw6e2ysUH1AYD3p7T2lUwt5PqBTHI6xDXNwCSp3WfR6Hf3n3wWoW_psfUOA1xfy5CpQ-Esn6488WbqdgPLcKueJ9clfAB6bDZqx2Q9P--H_m37SBr6wcNztn0_DQTIzpl-cCRGp7bYszjxenL8kKqx6_-jHiLnQ3maJoiEut-ACXS6vBIGbTCTm0wpogIJJkjnMfk3vGo9d5Jztt0wDP_1gHavk06lsnCfxolsz5aifXMUT_bg5sDmZ3h1bz6Ov8s5vQSJ-tbHtGDtJv1b4PiFVmsqsFY_Ywgp6eTnblCxOa0NDBZZA89SPIGzNnjffKTs5KeBn-m1foy_lfxkQrUq9U7acfRMoLC_7cBZd9lvOkKPR7cyYfnkA4cgmE6rKvGQumR6vAcqd2Wwt-e7t0PrF1CJBlcvrhxC7XylB-tNNesu4HS5FA2_cC_YosFS1BnNUyDbcMmmx8Z1_l6nlG3PbglMk4sJ_6opvtBdE4x6BCFg7J-oTNF3it6T2UDcMQKpfNLpbEYXZcKmINZDlNNgtxZoVFOQJSglv_y0\" 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\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:nPRVRzis4CVV3VX_8FAojLY0BCDUWcAe5nkhWQOj77VO6t6MJXOHYbJ9arklwV--8sKfaYKLQ5xs8eZy7dzzxex7rvx0KLLeCP_DPwH8etXZ2RMu0mDxBD2GM6sMGSrLYY9HBj4udsdCI90LJkrp4gboc92o9jZz99QOAOE2nofIwCLdHRa08gTs5Q6Vpw9o51UtbITReBiGu4LoQeYlyvaGBzksLAcu4Hy_hfVYrHz1khmCtqmvJz90WQp-lTZSlbbiVlxzwaNGD4nAM83IdUvVhwvUdEOjSskw8wxh4P2c3hrdORlwPnkdjqVGT9IbLOQ2i7wtNVsrsWIDB86MZFLu9gH0A1tkbITq68wqNT-jxhUBkm-jR3EvKuvXtOZbOhiA_GO2Lz21rzbXlWNQ3SgDjKN4wFYdGHZ-9_15oLJ5Ze5tQJGmCcsjUpBe72IEf6E9WvaJA26fDzgntu57MJgL1BRBrUtwRl6M5_hbEj9LNiA1NG8x7VG_txz_krgy2qeENXuKVkxt-ayLE9GP8lMNYJvtQEo1IQOjmG6aBU-y1HMEqOCrUgwQM9I6GNMoIT4dJfN1MPr8uJWmARXKFWSDVY47SeSyEWUt7xK9a1uK9JaQ91eXk0ETM7Fi2dqawD4TOf3LL9xQBPYdhWaqawaw6e2ysUH1AYD3p7T2lUwt5PqBTHI6xDXNwCSp3WfR6Hf3n3wWoW_psfUOA1xfy5CpQ-Esn6488WbqdgPLcKueJ9clfAB6bDZqx2Q9P--H_m37SBr6wcNztn0_DQTIzpl-cCRGp7bYszjxenL8kKqx6_-jHiLnQ3maJoiEut-ACXS6vBIGbTCTm0wpogIJJkjnMfk3vGo9d5Jztt0wDP_1gHavk06lsnCfxolsz5aifXMUT_bg5sDmZ3h1bz6Ov8s5vQSJ-tbHtGDtJv1b4PiFVmsqsFY_Ywgp6eTnblCxOa0NDBZZA89SPIGzNnjffKTs5KeBn-m1foy_lfxkQrUq9U7acfRMoLC_7cBZd9lvOkKPR7cyYfnkA4cgmE6rKvGQumR6vAcqd2Wwt-e7t0PrF1CJBlcvrhxC7XylB-tNNesu4HS5FA2_cC_YosFS1BnNUyDbcMmmx8Z1_l6nlG3PbglMk4sJ_6opvtBdE4x6BCFg7J-oTNF3it6T2UDcMQKpfNLpbEYXZcKmINZDlNNgtxZoVFOQJSglv_y0\" rel=\"noopener noreferrer\" target=\"_blank\">\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>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span>\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:nPP1Zzmq583l8yr_iEO2HQoqBE9I8THXPqHNx6xBTeguHHxdpTXgOgUsCtJKxQa7XBXGSK9SM2g4g8G4z82q8qvPzN_ad_3i9BD99a5YBrnsDdxlsS_VUy_ltJ6MQfl64HaEXWChR0JamPiBSlKYttn7fcSJybcQNxwK9Ch-9f_ox89nOlBB2-dKkGY1CA5P1CD110jBh29QBBabeT30h51UxorozMs--KPo8fVywbTA6Ev3BCytVnG_pyagt_mWglKqttoFlzblaWy78D6hDHcLX_FiHxaS4Me8IurLCMZoT3WWv9tjTo12SfiyV7Wq8Hz-v4HxU-xlGcXZ0qbZGEdduxF3k-Epjp_Ol-La4UqLGKn5L5j-Rt__LhblmfMiMnmK5ZGCDHY3WjdqYvdVNgrfPDT1eeIqJd1qEfj-CZrpCgiiZGACmheb2Ac5GCDI60iQt9LcHoVJ1xFnoVsjM2s2kT2Met0odatTkgIEEeqSizPbdhbOL3Zly-pF4gHMAguWklzx07gHJECv8g_pg70i8gNqjKBjAjxIhXFOsPdHXBB2rPh-d1e84YsOepkP7XwTZ8_ne7SFF5zX0hh2eD1vvEGVtxjtF1sVEWcd9bW9-BAvQXwdL4Em0B3DOtpKDKYrGfRXbc43qx72P1SOwWOjTvS6iSxB5TYyQ3UtIfqG3DCYSJ6h9GocWmof3eERy84dLjDW3cZDgLvswZXIZuHb72HOsu5nJYEcvBekQ731WhxyopQuW06zyjctHNEzr0EdjsOxyn3TPOy28GEN_BMSBzPLQjk28XbTcInJCDsbHsELIji52QDWKxDRu2O19j1Im-DgrofmJ8FBfO3QThscITWZGSxuDiK59gR2rfFYxzvWF-CKdrAhiWlfoITq7QEiebv-zbNnlyIa7qMrPyctuNybYy5o5TQSVx_0XTae3MNN9-vMGHzfx260nH6aEgf1rh18PTWRk0QhkzbhYitiJObAo9LoPLEYAZzlWAgot7aF3xQN4iQa6F1MIeOfj9TCElUfs0NUqYUTgOcEkUFxA_ncoTrWTygpdoHPYUnL0GzD5eiAdV_ulrkjLX7i9Xp7sME7COseNdU2u69X0uDlI9X67LwvTeF9kuBUjt22imrE9ZZ2_Dnk56MSjj3AiFttVEl6NUtd-z6EvzszfNor0YjYs7sAuYG2xq2NkAzCUrhHisBsEtH3NPnlNWY2dLWIdFU-6Wwsqzlv-TwUUjfe7xV9o6BRnLcIZeO3FvvqQs5X_vvlNZBi0FdcQp-qkYcJSUNiQhhE_Fny-rAYASjUT-jKJqJBYPQYywKMNrHUPwzImlBBNr9KBqgbMx6SUxb03hAydmzWJTtf9Rxy8Z-0Z1pAEo13dDJ_0G00\" \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=\"language-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml \r\n\r\ntitle S\u01a1 \u0111\u1ed3 ERD Qu\u1ea3n l\u00fd Kh\u00e1ch s\u1ea1n\r\n\r\nhide circle\r\nleft to right direction\r\n\r\n' \u0110\u1ecbnh ngh\u0129a c\u00e1c th\u1ef1c th\u1ec3 v\u1edbi c\u00e1c thu\u1ed9c t\u00ednh\r\nentity \"Kh\u00e1ch h\u00e0ng\" as customer {\r\n  * customer_id : UUID &lt;&gt;\r\n  --\r\n  first_name : VARCHAR(50)\r\n  last_name : VARCHAR(50)\r\n  email : VARCHAR(100) &lt;&gt;\r\n  phone : VARCHAR(20)\r\n  address : TEXT\r\n  loyalty_points : INTEGER\r\n  total_stays : INTEGER\r\n  date_registered : TIMESTAMP\r\n  date_of_birth : DATE\r\n  nationality : VARCHAR(50)\r\n}\r\n\r\nentity \"Ph\u00f2ng\" as room {\r\n  * room_id : UUID &lt;&gt;\r\n  --\r\n  room_number : VARCHAR(10) &lt;&gt;\r\n  floor_number : INTEGER\r\n  room_type_id : UUID &lt;&gt;\r\n  capacity : INTEGER\r\n  base_price : DECIMAL(10,2)\r\n  is_available : BOOLEAN\r\n  has_view : BOOLEAN\r\n  square_feet : INTEGER\r\n  last_renovated : DATE\r\n}\r\n\r\nentity \"Lo\u1ea1i ph\u00f2ng\" as roomtype {\r\n  * room_type_id : UUID &lt;&gt;\r\n  --\r\n  type_name : VARCHAR(50) &lt;&gt;\r\n  description : TEXT\r\n  standard_capacity : INTEGER\r\n  base_price : DECIMAL(10,2)\r\n  extra_bed_charge : DECIMAL(10,2)\r\n  has_kitchenette : BOOLEAN\r\n  has_balcony : BOOLEAN\r\n}\r\n\r\nentity \"\u0110\u1eb7t ph\u00f2ng\" as reservation {\r\n  * reservation_id : UUID &lt;&gt;\r\n  --\r\n  customer_id : UUID &lt;&gt;\r\n  room_id : UUID &lt;&gt;\r\n  check_in_date : DATE\r\n  check_out_date : DATE\r\n  number_of_guests : INTEGER\r\n  total_amount : DECIMAL(10,2)\r\n  status : VARCHAR(20)\r\n  special_requests : TEXT\r\n  created_at : TIMESTAMP\r\n  updated_at : TIMESTAMP\r\n  confirmation_code : VARCHAR(20) &lt;&gt;\r\n}\r\n\r\nentity \"Thanh to\u00e1n\" as payment {\r\n  * payment_id : UUID &lt;&gt;\r\n  --\r\n  reservation_id : UUID &lt;&gt;\r\n  amount : DECIMAL(10,2)\r\n  payment_date : TIMESTAMP\r\n  payment_method : VARCHAR(30)\r\n  transaction_id : VARCHAR(50) &lt;&gt;\r\n  status : VARCHAR(20)\r\n  receipt_url : TEXT\r\n  refund_amount : DECIMAL(10,2)\r\n}\r\n\r\nentity \"H\u00f3a \u0111\u01a1n\" as invoice {\r\n  * invoice_id : UUID &lt;&gt;\r\n  --\r\n  reservation_id : UUID &lt;&gt;\r\n  invoice_number : VARCHAR(20) &lt;&gt;\r\n  issued_date : DATE\r\n  due_date : DATE\r\n  subtotal : DECIMAL(10,2)\r\n  tax : DECIMAL(10,2)\r\n  service_charge : DECIMAL(10,2)\r\n  total_amount : DECIMAL(10,2)\r\n  status : VARCHAR(20)\r\n}\r\n\r\nentity \"Nh\u00e2n vi\u00ean\" as staff {\r\n  * staff_id : UUID &lt;&gt;\r\n  --\r\n  first_name : VARCHAR(50)\r\n  last_name : VARCHAR(50)\r\n  email : VARCHAR(100) &lt;&gt;\r\n  phone : VARCHAR(20)\r\n  role : VARCHAR(30)\r\n  hire_date : DATE\r\n  salary : DECIMAL(10,2)\r\n  shift_schedule : VARCHAR(50)\r\n  is_active : BOOLEAN\r\n}\r\n\r\nentity \"D\u1ecbch v\u1ee5 ph\u00f2ng\" as roomservice {\r\n  * service_id : UUID &lt;&gt;\r\n  --\r\n  reservation_id : UUID &lt;&gt;\r\n  staff_id : UUID &lt;&gt;\r\n  service_type : VARCHAR(50)\r\n  description : TEXT\r\n  request_time : TIMESTAMP\r\n  completion_time : TIMESTAMP\r\n  status : VARCHAR(20)\r\n  price : DECIMAL(10,2)\r\n}\r\n\r\n' C\u00e1c m\u1ed1i quan h\u1ec7\r\ncustomer ||--o{ reservation : \"t\u1ea1o ra\"\r\nroom ||--o{ reservation : \"\u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh cho\"\r\nreservation ||--|| payment : \"c\u00f3\"\r\nreservation ||--|| invoice : \"t\u1ea1o ra\"\r\nreservation ||--o{ roomservice : \"y\u00eau c\u1ea7u\"\r\nstaff ||--o{ roomservice : \"th\u1ef1c hi\u1ec7n\"\r\nroomtype ||--o{ room : \"ph\u00e2n lo\u1ea1i\"\r\n\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:nPP1Zzmq583l8yr_iEO2HQoqBE9I8THXPqHNx6xBTeguHHxdpTXgOgUsCtJKxQa7XBXGSK9SM2g4g8G4z82q8qvPzN_ad_3i9BD99a5YBrnsDdxlsS_VUy_ltJ6MQfl64HaEXWChR0JamPiBSlKYttn7fcSJybcQNxwK9Ch-9f_ox89nOlBB2-dKkGY1CA5P1CD110jBh29QBBabeT30h51UxorozMs--KPo8fVywbTA6Ev3BCytVnG_pyagt_mWglKqttoFlzblaWy78D6hDHcLX_FiHxaS4Me8IurLCMZoT3WWv9tjTo12SfiyV7Wq8Hz-v4HxU-xlGcXZ0qbZGEdduxF3k-Epjp_Ol-La4UqLGKn5L5j-Rt__LhblmfMiMnmK5ZGCDHY3WjdqYvdVNgrfPDT1eeIqJd1qEfj-CZrpCgiiZGACmheb2Ac5GCDI60iQt9LcHoVJ1xFnoVsjM2s2kT2Met0odatTkgIEEeqSizPbdhbOL3Zly-pF4gHMAguWklzx07gHJECv8g_pg70i8gNqjKBjAjxIhXFOsPdHXBB2rPh-d1e84YsOepkP7XwTZ8_ne7SFF5zX0hh2eD1vvEGVtxjtF1sVEWcd9bW9-BAvQXwdL4Em0B3DOtpKDKYrGfRXbc43qx72P1SOwWOjTvS6iSxB5TYyQ3UtIfqG3DCYSJ6h9GocWmof3eERy84dLjDW3cZDgLvswZXIZuHb72HOsu5nJYEcvBekQ731WhxyopQuW06zyjctHNEzr0EdjsOxyn3TPOy28GEN_BMSBzPLQjk28XbTcInJCDsbHsELIji52QDWKxDRu2O19j1Im-DgrofmJ8FBfO3QThscITWZGSxuDiK59gR2rfFYxzvWF-CKdrAhiWlfoITq7QEiebv-zbNnlyIa7qMrPyctuNybYy5o5TQSVx_0XTae3MNN9-vMGHzfx260nH6aEgf1rh18PTWRk0QhkzbhYitiJObAo9LoPLEYAZzlWAgot7aF3xQN4iQa6F1MIeOfj9TCElUfs0NUqYUTgOcEkUFxA_ncoTrWTygpdoHPYUnL0GzD5eiAdV_ulrkjLX7i9Xp7sME7COseNdU2u69X0uDlI9X67LwvTeF9kuBUjt22imrE9ZZ2_Dnk56MSjj3AiFttVEl6NUtd-z6EvzszfNor0YjYs7sAuYG2xq2NkAzCUrhHisBsEtH3NPnlNWY2dLWIdFU-6Wwsqzlv-TwUUjfe7xV9o6BRnLcIZeO3FvvqQs5X_vvlNZBi0FdcQp-qkYcJSUNiQhhE_Fny-rAYASjUT-jKJqJBYPQYywKMNrHUPwzImlBBNr9KBqgbMx6SUxb03hAydmzWJTtf9Rxy8Z-0Z1pAEo13dDJ_0G00\" \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             <\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:nPRVRzis4CVV3VX_8FAojLY0BCDUWcAe5nkhWQOj77VO6t6MJXOHYbJ9arklwV--8sKfaYKLQ5xs8eZy7dzzxex7rvx0KLLeCP_DPwH8etXZ2RMu0mDxBD2GM6sMGSrLYY9HBj4udsdCI90LJkrp4gboc92o9jZz99QOAOE2nofIwCLdHRa08gTs5Q6Vpw9o51UtbITReBiGu4LoQeYlyvaGBzksLAcu4Hy_hfVYrHz1khmCtqmvJz90WQp-lTZSlbbiVlxzwaNGD4nAM83IdUvVhwvUdEOjSskw8wxh4P2c3hrdORlwPnkdjqVGT9IbLOQ2i7wtNVsrsWIDB86MZFLu9gH0A1tkbITq68wqNT-jxhUBkm-jR3EvKuvXtOZbOhiA_GO2Lz21rzbXlWNQ3SgDjKN4wFYdGHZ-9_15oLJ5Ze5tQJGmCcsjUpBe72IEf6E9WvaJA26fDzgntu57MJgL1BRBrUtwRl6M5_hbEj9LNiA1NG8x7VG_txz_krgy2qeENXuKVkxt-ayLE9GP8lMNYJvtQEo1IQOjmG6aBU-y1HMEqOCrUgwQM9I6GNMoIT4dJfN1MPr8uJWmARXKFWSDVY47SeSyEWUt7xK9a1uK9JaQ91eXk0ETM7Fi2dqawD4TOf3LL9xQBPYdhWaqawaw6e2ysUH1AYD3p7T2lUwt5PqBTHI6xDXNwCSp3WfR6Hf3n3wWoW_psfUOA1xfy5CpQ-Esn6488WbqdgPLcKueJ9clfAB6bDZqx2Q9P--H_m37SBr6wcNztn0_DQTIzpl-cCRGp7bYszjxenL8kKqx6_-jHiLnQ3maJoiEut-ACXS6vBIGbTCTm0wpogIJJkjnMfk3vGo9d5Jztt0wDP_1gHavk06lsnCfxolsz5aifXMUT_bg5sDmZ3h1bz6Ov8s5vQSJ-tbHtGDtJv1b4PiFVmsqsFY_Ywgp6eTnblCxOa0NDBZZA89SPIGzNnjffKTs5KeBn-m1foy_lfxkQrUq9U7acfRMoLC_7cBZd9lvOkKPR7cyYfnkA4cgmE6rKvGQumR6vAcqd2Wwt-e7t0PrF1CJBlcvrhxC7XylB-tNNesu4HS5FA2_cC_YosFS1BnNUyDbcMmmx8Z1_l6nlG3PbglMk4sJ_6opvtBdE4x6BCFg7J-oTNF3it6T2UDcMQKpfNLpbEYXZcKmINZDlNNgtxZoVFOQJSglv_y0\" rel=\"noopener noreferrer\" target=\"_blank\">\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>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:nPRVRzis4CVV3VX_8FAojLY0BCDUWcAe5nkhWQOj77VO6t6MJXOHYbJ9arklwV--8sKfaYKLQ5xs8eZy7dzzxex7rvx0KLLeCP_DPwH8etXZ2RMu0mDxBD2GM6sMGSrLYY9HBj4udsdCI90LJkrp4gboc92o9jZz99QOAOE2nofIwCLdHRa08gTs5Q6Vpw9o51UtbITReBiGu4LoQeYlyvaGBzksLAcu4Hy_hfVYrHz1khmCtqmvJz90WQp-lTZSlbbiVlxzwaNGD4nAM83IdUvVhwvUdEOjSskw8wxh4P2c3hrdORlwPnkdjqVGT9IbLOQ2i7wtNVsrsWIDB86MZFLu9gH0A1tkbITq68wqNT-jxhUBkm-jR3EvKuvXtOZbOhiA_GO2Lz21rzbXlWNQ3SgDjKN4wFYdGHZ-9_15oLJ5Ze5tQJGmCcsjUpBe72IEf6E9WvaJA26fDzgntu57MJgL1BRBrUtwRl6M5_hbEj9LNiA1NG8x7VG_txz_krgy2qeENXuKVkxt-ayLE9GP8lMNYJvtQEo1IQOjmG6aBU-y1HMEqOCrUgwQM9I6GNMoIT4dJfN1MPr8uJWmARXKFWSDVY47SeSyEWUt7xK9a1uK9JaQ91eXk0ETM7Fi2dqawD4TOf3LL9xQBPYdhWaqawaw6e2ysUH1AYD3p7T2lUwt5PqBTHI6xDXNwCSp3WfR6Hf3n3wWoW_psfUOA1xfy5CpQ-Esn6488WbqdgPLcKueJ9clfAB6bDZqx2Q9P--H_m37SBr6wcNztn0_DQTIzpl-cCRGp7bYszjxenL8kKqx6_-jHiLnQ3maJoiEut-ACXS6vBIGbTCTm0wpogIJJkjnMfk3vGo9d5Jztt0wDP_1gHavk06lsnCfxolsz5aifXMUT_bg5sDmZ3h1bz6Ov8s5vQSJ-tbHtGDtJv1b4PiFVmsqsFY_Ywgp6eTnblCxOa0NDBZZA89SPIGzNnjffKTs5KeBn-m1foy_lfxkQrUq9U7acfRMoLC_7cBZd9lvOkKPR7cyYfnkA4cgmE6rKvGQumR6vAcqd2Wwt-e7t0PrF1CJBlcvrhxC7XylB-tNNesu4HS5FA2_cC_YosFS1BnNUyDbcMmmx8Z1_l6nlG3PbglMk4sJ_6opvtBdE4x6BCFg7J-oTNF3it6T2UDcMQKpfNLpbEYXZcKmINZDlNNgtxZoVFOQJSglv_y0\" 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=\"ANJCSUi\"><img loading=\"lazy\" alt=\"Editing a ERD in Visual Paradigm VPasCode\" class=\"alignnone wp-image-2662 size-full\" decoding=\"async\" height=\"856\" loading=\"lazy\" sizes=\"auto, (max-width: 1311px) 100vw, 1311px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83ff8445766.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83ff8445766.png 1311w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83ff8445766-300x196.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83ff8445766-1024x669.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a83ff8445766-768x501.png 768w\" width=\"1311\"\/><\/p>\n<hr \/>\n<section class=\"post-section\"><span style=\"font-size: 1.7em; font-weight: bold;\">Mang c\u00e1c thi\u1ebft k\u1ebf c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n \u0111\u1ebfn cu\u1ed9c s\u1ed1ng v\u1edbi VPasCode<\/span><\/section>\n<p>X\u00e2y d\u1ef1ng c\u00e1c m\u00f4 h\u00ecnh c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p kh\u00f4ng nh\u1ea5t thi\u1ebft ph\u1ea3i \u0111\u1ed3ng ngh\u0129a v\u1edbi vi\u1ec7c v\u1eadt l\u1ed9n v\u1edbi c\u00e1c giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng k\u00e9o-th\u1ea3 c\u1ed3ng k\u1ec1nh. B\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3, ki\u1ebfn tr\u00fac c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n, s\u1ea1ch s\u1ebd v\u00e0 d\u1ec5 d\u00e0ng b\u1ea3o tr\u00ec.<\/p>\n<p>S\u1eb5n s\u00e0ng th\u1eed x\u00e2y d\u1ef1ng ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng c\u1ee7a ri\u00eang b\u1ea1n? H\u00e3y truy c\u1eadp<a href=\"https:\/\/www.vpascode.com\/editor\/\">VPasCode<\/a> \u0111\u1ec3 tr\u1ea3i nghi\u1ec7m kh\u1ea3 n\u0103ng hi\u1ec3n th\u1ecb th\u1eddi gian th\u1ef1c, ph\u00e1t hi\u1ec7n \u0111\u1ecbnh d\u1ea1ng t\u1ef1 \u0111\u1ed9ng v\u00e0 xu\u1ea5t d\u1eef li\u1ec7u li\u1ec1n m\u1ea1ch cho t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt c\u1ee7a b\u1ea1n ngay h\u00f4m nay!<\/p>\n","protected":false},"excerpt":{"rendered":"Khi thi\u1ebft k\u1ebf c\u00e1c ki\u1ebfn tr\u00fac c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u1eefng ch\u1eafc cho c\u00e1c l\u0129nh v\u1ef1c ph\u1ee9c t\u1ea1p nh\u01b0 ng\u00e0nh kh\u00e1ch s\u1ea1n, vi\u1ec7c tr\u1ef1c quan h\u00f3a c\u00e1c m\u1ed1i quan h\u1ec7 m\u1ed9t c\u00e1ch r\u00f5 r\u00e0ng l\u00e0 \u0111i\u1ec1u then ch\u1ed1t. D\u00f9 b\u1ea1n&#8230;","protected":false},"author":4,"featured_media":2211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"Build a Hotel Management ERD Using PlantUML & VPasCode","_yoast_wpseo_metadesc":"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.","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":""}},"source_url":"","source_h1_title":"","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[19],"tags":[],"asset-category":[],"class_list":["post-2210","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-guides"],"source_url":"","source_h1_title":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Build a Hotel Management ERD Using PlantUML &amp; VPasCode<\/title>\n<meta name=\"description\" content=\"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.\" \/>\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\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build a Hotel Management ERD Using PlantUML &amp; VPasCode\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T07:03:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"jick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/\"},\"author\":{\"name\":\"jick\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\"},\"headline\":\"X\u00e2y d\u1ef1ng s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n b\u1eb1ng PlantUML v\u00e0 VPasCode\",\"datePublished\":\"2026-08-18T07:03:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/\"},\"wordCount\":1260,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/build-professional-database-diagrams-thumbnail-1.jpg\",\"articleSection\":[\"Tutorials &amp; Guides\"],\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/\",\"name\":\"Build a Hotel Management ERD Using PlantUML & VPasCode\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/build-professional-database-diagrams-thumbnail-1.jpg\",\"datePublished\":\"2026-08-18T07:03:18+00:00\",\"description\":\"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/build-professional-database-diagrams-thumbnail-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/build-professional-database-diagrams-thumbnail-1.jpg\",\"width\":1376,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/building-a-hotel-management-erd-with-plantuml-and-vpascode\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"X\u00e2y d\u1ef1ng s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n b\u1eb1ng PlantUML v\u00e0 VPasCode\"}]},{\"@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\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\",\"name\":\"jick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"caption\":\"jick\"},\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/author\\\/jick\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Build a Hotel Management ERD Using PlantUML & VPasCode","description":"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.","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\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/","og_locale":"vi_VN","og_type":"article","og_title":"Build a Hotel Management ERD Using PlantUML & VPasCode","og_description":"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.","og_url":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/","og_site_name":"VPasCode","article_published_time":"2026-08-18T07:03:18+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg","type":"image\/jpeg"}],"author":"jick","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":false,"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"3 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#article","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/"},"author":{"name":"jick","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6"},"headline":"X\u00e2y d\u1ef1ng s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n b\u1eb1ng PlantUML v\u00e0 VPasCode","datePublished":"2026-08-18T07:03:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/"},"wordCount":1260,"commentCount":0,"publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg","articleSection":["Tutorials &amp; Guides"],"inLanguage":"vi","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/","url":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/","name":"Build a Hotel Management ERD Using PlantUML & VPasCode","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg","datePublished":"2026-08-18T07:03:18+00:00","description":"Learn how to create a comprehensive Hotel Management Entity Relationship Diagram (ERD) from scratch using PlantUML and the free VPasCode editor.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#primaryimage","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail-1.jpg","width":1376,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/building-a-hotel-management-erd-with-plantuml-and-vpascode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/vn\/"},{"@type":"ListItem","position":2,"name":"X\u00e2y d\u1ef1ng s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n b\u1eb1ng PlantUML v\u00e0 VPasCode"}]},{"@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\/"}},{"@type":"Person","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6","name":"jick","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","caption":"jick"},"url":"https:\/\/www.vpascode.com\/vn\/author\/jick\/"}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/comments?post=2210"}],"version-history":[{"count":0,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2210\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media\/2211"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/categories?post=2210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/tags?post=2210"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/asset-category?post=2210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}