{"id":2135,"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 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n v\u1edbi PlantUML v\u00e0 VPasCode"},"content":{"rendered":"<p><img fetchpriority=\"high\" 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\" fetchpriority=\"high\" height=\"768\" sizes=\"(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 m\u1ea1nh m\u1ebd cho c\u00e1c l\u0129nh v\u1ef1c ph\u1ee9c t\u1ea1p nh\u01b0 ng\u00e0nh l\u01b0u tr\u00fa, 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 l\u1eadp b\u1ea3n \u0111\u1ed3 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 quan h\u1ec7 th\u1ef1c th\u1ec3 (ERD) \u0111\u01b0\u1ee3c c\u1ea5u tr\u00fac t\u1ed1t s\u1ebd ti\u1ebft ki\u1ec7m h\u00e0ng tr\u0103m gi\u1edd trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n. Trong bu\u1ed5i h\u1ecdc chuy\u00ean s\u00e2u n\u00e0y, t\u00f4i s\u1ebd d\u1eabn b\u1ea1n t\u1eebng b\u01b0\u1edbc c\u00e1ch t\u00f4i x\u00e2y d\u1ef1ng 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 alt=\"\" class=\"alignnone size-full wp-image-2661\" decoding=\"async\" height=\"738\" sizes=\"(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 cho \u0111o\u1ea1n m\u00e3. 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, t\u00ednh d\u1ec5 \u0111\u1ecdc c\u1ee7a b\u1ed1 c\u1ee5c l\u00e0 \u0111i\u1ec1u then ch\u1ed1t. T\u00f4i c\u1ea5u h\u00ecnh PlantUML \u0111\u1ec3 \u1ea9n nh\u1eefng ph\u1ea7n l\u1ed9n x\u1ed9n kh\u00f4ng c\u1ea7n thi\u1ebft v\u00e0 t\u1ed1i \u01b0u h\u00f3a h\u01b0\u1edbng b\u1ed1 c\u1ee5c s\u01a1 \u0111\u1ed3:<\/p>\n<pre><code class=\"language-plantuml\">\r\n@startuml \r\ntitle S\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n\r\n\r\n\u1ea9n h\u00ecnh tr\u00f2n\r\nh\u01b0\u1edbng tr\u00e1i sang ph\u1ea3i\r\n    <\/code><\/pre>\n<p><strong>T\u1ea1i sao l\u1ea1i d\u00f9ng c\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y?<\/strong>\u1ea8n c\u00e1c h\u00ecnh tr\u00f2n thu\u1ed9c t\u00ednh m\u1eb7c \u0111\u1ecbnh gi\u00fap c\u00e1c h\u1ed9p th\u1ef1c th\u1ec3 tr\u1edf n\u00ean g\u1ecdn g\u00e0ng v\u00e0 hi\u1ec7n \u0111\u1ea1i h\u01a1n. Thi\u1ebft l\u1eadp h\u01b0\u1edbng th\u00e0nh<code>h\u01b0\u1edbng tr\u00e1i sang ph\u1ea3i<\/code>gi\u00fap ng\u0103n ch\u1eb7n c\u00e1c s\u01a1 \u0111\u1ed3 ERD r\u1ed9ng tr\u1edf n\u00ean kh\u00f4ng th\u1ec3 qu\u1ea3n l\u00fd theo chi\u1ec1u d\u1ecdc, \u0111\u1ed3ng th\u1eddi ph\u00e2n b\u1ed1 h\u1ee3p l\u00fd c\u00e1c m\u1ed1i quan h\u1ec7 gi\u1eefa nhi\u1ec1u b\u1ea3ng.<\/p>\n<h2>2. X\u00e1c \u0111\u1ecbnh 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 x\u00e1c \u0111\u1ecbnh 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 t\u1eebng th\u1ef1c th\u1ec3 v\u1edbi 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> c\u00e1c th\u1ef1c th\u1ec3:<\/p>\n<pre><code class=\"language-plantuml\">\r\nth\u1ef1c th\u1ec3 \"Kh\u00e1ch h\u00e0ng\" as kh\u00e1chhang {\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\nth\u1ef1c th\u1ec3 \"Lo\u1ea1i ph\u00f2ng\" as loaiphong {\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 x\u00e1c \u0111\u1ecbnh 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 ngu\u1ed3n \u0111\u1ec1u c\u00f3 th\u1ec3 hi\u1ec3u ngay l\u1eadp t\u1ee9c v\u1ec1 quy t\u1eafc ch\u1ec9 m\u1ee5c v\u00e0 duy nh\u1ea5t tr\u01b0\u1edbc khi c\u00e1c k\u1ecbch b\u1ea3n di chuy\u1ec3n c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c vi\u1ebft ra.<\/p>\n<h2>3. B\u1ea3n \u0111\u1ed3 h\u00f3a 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 c\u1ed1t 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 \u0111\u1ec1u li\u00ean k\u1ebft tr\u1edf l\u1ea1i c\u00e1c b\u1ea3ng n\u1ec1n t\u1ea3ng th\u00f4ng qua kh\u00f3a ngo\u1ea1i:<\/p>\n<pre><code class=\"language-plantuml\">\r\nth\u1ef1c th\u1ec3 \"Ph\u00f2ng\" as phong {\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\nth\u1ef1c th\u1ec3 \"\u0110\u1eb7t ph\u00f2ng\" as datphong {\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 v\u1ebd ra c\u00e1c h\u1ed3 s\u01a1 h\u00f3a \u0111\u01a1n (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 x\u1eed l\u00fd. \u0110\u1ec3 k\u1ebft n\u1ed1i t\u1ea5t c\u1ea3 l\u1ea1i v\u1edbi nhau, t\u00f4i x\u00e1c \u0111\u1ecbnh r\u00f5 r\u00e0ng t\u00ednh b\u1ed9i s\u1ed1 b\u1eb1ng k\u00fd hi\u1ec7u chu\u1ea9n c\u1ee7a PlantUML:<\/p>\n<pre><code class=\"language-plantuml\">\r\n' M\u1ed1i quan h\u1ec7\r\ncustomer ||--o{ reservation : \"t\u1ea1o ra\"\r\nroom ||--o{ reservation : \"\u0111\u01b0\u1ee3c g\u00e1n 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 chim ch\u00ednh x\u00e1c (nh\u01b0 <code>||--o{<\/code> cho c\u00e1c m\u1ed1i quan h\u1ec7 m\u1ed9t-\u0111a b\u1eaft bu\u1ed9c-t\u1edbi-t\u00f9y ch\u1ecdn\u2014\u0111\u1ea3m b\u1ea3o c\u00e1c quy t\u1eafc logic kinh doanh \u0111\u01b0\u1ee3c m\u00f4 h\u00ecnh h\u00f3a ch\u00ednh x\u00e1c, v\u00ed d\u1ee5 nh\u01b0 m\u1ed9t \u0111\u1eb7t ph\u00f2ng y\u00eau c\u1ea7u ph\u1ea3i c\u00f3 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.<\/p>\n<section class=\"post-section\">\u00a0<\/section>\n<hr\/>\n<h2>To\u00e0n b\u1ed9 \u0111o\u1ea1n m\u00e3 PlantUML<\/h2>\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u00e3 ngu\u1ed3n \u0111\u1ea7y \u0111\u1ee7 v\u00e0 \u0111\u01b0\u1ee3c gh\u00e9p n\u1ed1i cho s\u01a1 \u0111\u1ed3 ERD qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n c\u1ee7a ch\u00fang ta. B\u1ea1n c\u00f3 th\u1ec3 sao ch\u00e9p v\u00e0 d\u00e1n \u0111o\u1ea1n m\u00e3 n\u00e0y tr\u1ef1c ti\u1ebfp v\u00e0o tr\u00ecnh ch\u1ec9nh s\u1eeda PlantUML y\u00eau th\u00edch c\u1ee7a m\u00ecnh<strong>tr\u00ecnh ch\u1ec9nh s\u1eeda PlantUML mi\u1ec5n ph\u00ed<\/strong> \u0111\u1ec3 ch\u1ec9nh s\u1eeda ho\u1eb7c t\u1ea1o \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\">\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:nPPBZnj5483lblmVMhv08bPQ5d69K1GJMsJ5xYPi79JRg3rJThSoqptfXucLpIa73bmISKAvOA889O04v81aYzEizd_CFw5w7jwPyGmIU-6ow-wgwgd-wj5rInkgZ8r2qk_rUuQR4CZzYnKvVvbklYVZqn7vogRhruA4oT_aIvQiV4Pqkbu9fvwktmh2aby58qObV-8Uk_WztRmISsBIpIzkSyM9fhYE6Px2dT47vFn5klaERSISdR-bnCT3YM7fve_yttEom3Cu_hRfvWVSItuJhDy3WTujoQ1mWYK_Ylc0K4rygusCG96d_HuXrxThZmVa1ddmu714FhlfH7jxxk-CAsqyGID0wTV3qzjtXgSVVhf_pSb2sYc2YFAmiltn_lwrujoOIL6rECWjQ10eq1e5a_73INQyNDBGBBrOSc6SuF1aClvYVEfaHXeQUXYDPKCGK0EUWZdN1XIuAqqEZyVt9yFZUrknd7bJhWn3uMWu6RjzGGsNWeQEMUCoprmOIfpt60Ok1wcaZ4g8xdS7m4maR3H5v5KU9OvPAAMwLAXS9RCqonXsJlPfJFtSrOh-b6hmOiLzHtSqldruF3p23trqaF7bsgCB30gTXax--TsxH-FXYPCmghq5Xs_gk_gnfGgy6O2fVoQBkW8X5yWos3AiOJgIcFISD6YvkzI8jLuknvQ9TdEhq0b0-uh7BcQLXC5q405LWNSLFl34AEfD0QqPLVDM7KVg4JS-0m76j62Sqj2NObaLrBXWBQ__CbW2brn0WrfasRT5SxdL0QUpPblp4Dtr7tbSU2xvApcVxqjhce8y6LsPp2tezjAZaRJ2j472A1YhTmjSn-1pj5Jmk3or39olmEMIHqspNcqST4YGC_QcACVaow3HKhAxrzXF67MTLoOhaP6FwJ92MKczM7PLyR_4f1j5UMR1j-P_AOl0C1bKdFyanuNPA3JrBx-uMmLTf1NuWCNXMHLM82kOMH5q1gx6waxodkAZTb6Wuc8XNTaKg8hb5L2LbZlzy61xAQwrnO0tKZAmqDpITfgbOXjuGv-qfYOwvZxVNU5NI-uQknEM_2J8WYVlSdXeCfkLwBB5__tKAXd2Ri8nhdOPqv2gPIi8ncV6qzX30XksUEMU6qpU1NJsmX6EDJYPuFJofjOGiOKLSTf2AyBst_Ej7NTvNlOUxNZU_hOKNSipF8BTLXJ58MGEj8cxohJZANgMZtt7wUOb9_W8uyoORhxjzxQ3szdPtfvyMdivRf21mHTN4aK7_LuscRHhOKtZoFdQ9tDiW_W2IATUKN5MPsVRteWMVlA-NQTi2erlDnIT2vM8el8oUMU9dwv_jgYU5qUxOZ7aCexN5yMrif1Lr9rUd1LSc8qS0mVl5eW0P_H_0000\" \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\n\u1ea9n h\u00ecnh tr\u00f2n\r\nh\u01b0\u1edbng t\u1eeb tr\u00e1i sang ph\u1ea3i\r\n\r\n' \u0110\u1ecbnh ngh\u0129a c\u00e1c th\u1ef1c th\u1ec3 v\u1edbi 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' M\u1ed1i quan h\u1ec7\r\ncustomer ||--o{ reservation : \"t\u1ea1o ra\"\r\nroom ||--o{ reservation : \"\u0111\u01b0\u1ee3c g\u00e1n 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:nPPBZnj5483lblmVMhv08bPQ5d69K1GJMsJ5xYPi79JRg3rJThSoqptfXucLpIa73bmISKAvOA889O04v81aYzEizd_CFw5w7jwPyGmIU-6ow-wgwgd-wj5rInkgZ8r2qk_rUuQR4CZzYnKvVvbklYVZqn7vogRhruA4oT_aIvQiV4Pqkbu9fvwktmh2aby58qObV-8Uk_WztRmISsBIpIzkSyM9fhYE6Px2dT47vFn5klaERSISdR-bnCT3YM7fve_yttEom3Cu_hRfvWVSItuJhDy3WTujoQ1mWYK_Ylc0K4rygusCG96d_HuXrxThZmVa1ddmu714FhlfH7jxxk-CAsqyGID0wTV3qzjtXgSVVhf_pSb2sYc2YFAmiltn_lwrujoOIL6rECWjQ10eq1e5a_73INQyNDBGBBrOSc6SuF1aClvYVEfaHXeQUXYDPKCGK0EUWZdN1XIuAqqEZyVt9yFZUrknd7bJhWn3uMWu6RjzGGsNWeQEMUCoprmOIfpt60Ok1wcaZ4g8xdS7m4maR3H5v5KU9OvPAAMwLAXS9RCqonXsJlPfJFtSrOh-b6hmOiLzHtSqldruF3p23trqaF7bsgCB30gTXax--TsxH-FXYPCmghq5Xs_gk_gnfGgy6O2fVoQBkW8X5yWos3AiOJgIcFISD6YvkzI8jLuknvQ9TdEhq0b0-uh7BcQLXC5q405LWNSLFl34AEfD0QqPLVDM7KVg4JS-0m76j62Sqj2NObaLrBXWBQ__CbW2brn0WrfasRT5SxdL0QUpPblp4Dtr7tbSU2xvApcVxqjhce8y6LsPp2tezjAZaRJ2j472A1YhTmjSn-1pj5Jmk3or39olmEMIHqspNcqST4YGC_QcACVaow3HKhAxrzXF67MTLoOhaP6FwJ92MKczM7PLyR_4f1j5UMR1j-P_AOl0C1bKdFyanuNPA3JrBx-uMmLTf1NuWCNXMHLM82kOMH5q1gx6waxodkAZTb6Wuc8XNTaKg8hb5L2LbZlzy61xAQwrnO0tKZAmqDpITfgbOXjuGv-qfYOwvZxVNU5NI-uQknEM_2J8WYVlSdXeCfkLwBB5__tKAXd2Ri8nhdOPqv2gPIi8ncV6qzX30XksUEMU6qpU1NJsmX6EDJYPuFJofjOGiOKLSTf2AyBst_Ej7NTvNlOUxNZU_hOKNSipF8BTLXJ58MGEj8cxohJZANgMZtt7wUOb9_W8uyoORhxjzxQ3szdPtfvyMdivRf21mHTN4aK7_LuscRHhOKtZoFdQ9tDiW_W2IATUKN5MPsVRteWMVlA-NQTi2erlDnIT2vM8el8oUMU9dwv_jgYU5qUxOZ7aCexN5yMrif1Lr9rUd1LSc8qS0mVl5eW0P_H_0000\" \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: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 alt=\"Editing a ERD in Visual Paradigm VPasCode\" class=\"alignnone wp-image-2662 size-full\" decoding=\"async\" height=\"856\" sizes=\"(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;\">Khi\u1ebfn c\u00e1c thi\u1ebft k\u1ebf c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n s\u1ed1ng \u0111\u1ed9ng h\u01a1n v\u1edbi VPasCode<\/span><\/section>\n<p>Vi\u1ec7c 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\u1ed1i m\u1eb7t 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 bi\u1ec3u \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 duy 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 v\u00e0o <a href=\"https:\/\/www.vpascode.com\/editor\/\">VPasCode<\/a> \u0111\u1ec3 tr\u1ea3i nghi\u1ec7m 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 tr\u01a1n tru cho t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt c\u1ee7a b\u1ea1n ngay h\u00f4m nay!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Khi thi\u1ebft k\u1ebf c\u00e1c ki\u1ebfn tr\u00fac c\u01a1 s\u1edf d\u1eef li\u1ec7u m\u1ea1nh m\u1ebd cho c\u00e1c l\u0129nh v\u1ef1c ph\u1ee9c t\u1ea1p nh\u01b0 ng\u00e0nh l\u01b0u tr\u00fa, 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;<\/p>\n","protected":false},"author":4,"featured_media":2136,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","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":""}},"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[19],"tags":[],"class_list":["post-2135","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-guides"],"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.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 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n v\u1edbi 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\":1225,\"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.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.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.jpg\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/build-professional-database-diagrams-thumbnail.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 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n v\u1edbi 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.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 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n v\u1edbi 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":1225,"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.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.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.jpg","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/build-professional-database-diagrams-thumbnail.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 quan h\u1ec7 th\u1ef1c th\u1ec3 qu\u1ea3n l\u00fd kh\u00e1ch s\u1ea1n v\u1edbi 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\/2135","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=2135"}],"version-history":[{"count":0,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2135\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media\/2136"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/categories?post=2135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/tags?post=2135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}