{"id":2118,"date":"2026-05-26T07:38:24","date_gmt":"2026-05-26T07:38:24","guid":{"rendered":"https:\/\/www.vpascode.com\/pl\/docs\/uncategorized\/plantuml-erd-syntax-guide\/"},"modified":"2026-05-26T07:38:24","modified_gmt":"2026-05-26T07:38:24","slug":"plantuml-erd-syntax-guide","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","title":{"rendered":"Przewodnik po sk\u0142adni PlantUML ERD"},"content":{"rendered":"<h2>Czym jest diagram relacji encji (ERD)?<\/h2>\n<p>Diagram <strong>relacji encji (ERD)<\/strong> to strukturalny szkic u\u017cywany do projektowania, dokumentowania i analizy baz danych relacyjnych. Wizualizuje tabele (encje) w systemie, konkretne kolumny (atrybuty), kt\u00f3re zawieraj\u0105, oraz spos\u00f3b, w jaki te tabele s\u0105 ze sob\u0105 powi\u0105zane. W PlantUML diagramy ERD tworzy si\u0119 przy u\u017cyciu <strong>notacji In\u017cynierii Informacji (IE)<\/strong>, kt\u00f3ra implementuje standardowe <strong>notacj\u0119 k\u0142ykci kruka<\/strong> w celu przedstawienia ogranicze\u0144 relacyjnych.<\/p>\n<p>Niezale\u017cnie od tego, czy projektujesz magazyn danych mikroserwisu, optymalizujesz \u015bcie\u017cki po\u0142\u0105cze\u0144 SQL, czy mapujesz architektur\u0119 magazynu danych na skal\u0119 ca\u0142ej organizacji, diagram ERD oparty na tek\u015bcie zapewnia, \u017ce schematy baz danych s\u0105 idealnie czytelne. Dzi\u0119ki <strong>VPasCode<\/strong>, mo\u017cesz definiowa\u0107 tabele bazy danych, klucze indeks\u00f3w i relacje logiczne przy u\u017cyciu czystego, deklaratywnego sk\u0142adnia. Silnik automatycznie obs\u0142uguje dopasowanie rozmiar\u00f3w p\u00f3l tabel i kieruje ci\u0105gi po\u0142\u0105cze\u0144 kluczy obcych bez nak\u0142adania si\u0119 linii uk\u0142adu.<\/p>\n<h2>Podstawowy przewodnik sk\u0142adniowy: elementy i konstrukcje<\/h2>\n<p>Tworzenie solidnego diagramu ERD w stylu IE w PlantUML opiera si\u0119 na zorganizowanych blokach encji, jasnych oznaczeniach kluczy oraz modyfikatorach liczno\u015bci k\u0142ykci kruka.<\/p>\n<h3>1. Deklarowanie encji (tabel bazy danych)<\/h3>\n<p>Deklarujesz tabel\u0119 bazy danych przy u\u017cyciu s\u0142owa kluczowego <code>entity<\/code>a nast\u0119pnie nazw\u0119 tabeli i zestaw klamr. Wewn\u0105trz klamr wymieniasz kolumny tabeli. Aby schemat by\u0142 czysty i czytelny, u\u017cyj poziomej linii separatora (<code>--<\/code>) w celu oddzielenia kluczy g\u0142\u00f3wnych\/obcych od standardowych atrybut\u00f3w danych:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">entity \"users\" as users_table {\r\n    id : INT [PK]\r\n    --\r\n    email : VARCHAR(255)\r\n    created_at : TIMESTAMP\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL50gBKujAbPII2nM0BFYInAJSb8Lgdcv580WCqN1Ii7JBqGXEi0x5YAagmkXKtCJCtE0ic6EGSuUZa4QHgQccX2PvABKn9BKbFZ44g1qYAUlQt28esy0BrSj0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"jsXYoEv\"><img alt=\"\" class=\"alignnone size-full wp-image-598\" decoding=\"async\" height=\"98\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png\" width=\"183\"\/><\/p>\n<h3>2. Oznaczanie kluczy g\u0142\u00f3wnych i obcych<\/h3>\n<p>Cho\u0107 wska\u017aniki tekstowe takie jak `[PK]` lub `[FK]` dzia\u0142aj\u0105 dobrze, silnik IE w PlantUML obs\u0142uguje r\u00f3wnie\u017c wizualne ikony kluczy. Umieszczaj\u0105c gwiazdk\u0119 (<code>*<\/code>) przed atrybutem oznacza go jako kolumn\u0119 **obowi\u0105zkow\u0105 (nie mo\u017ce by\u0107 pusta)**, podczas gdy czysty ci\u0105g tekstowy lub znacznik dodaje jawne konteksty indeksowania:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w 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:IyrBpafKKCelIaajAbPIgERbKW02BONC50Kh1K-_40KRcm1lEpk8iAukJBgqEBKe7acD6rnDTdvAV5LUvj4zsVdbbK3vCCSWPm_780rJ0qrUhbe0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">encja \"orders\" {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * user_id : INT &lt;&lt;FK&gt;&gt;\r\n    kod_zni\u017ckowy : VARCHAR(50)\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyrBpafKKCelIaajAbPIgERbKW02BONC50Kh1K-_40KRcm1lEpk8iAukJBgqEBKe7acD6rnDTdvAV5LUvj4zsVdbbK3vCCSWPm_780rJ0qrUhbe0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IyqhoIofL53ABqf9BIfMKgZcvL800Ys5p1G5AmLFln056vi0RpixYB2kBaowj3YrA1v9ZHjSJKfcSN9-QLv9V79-IYfGFimnoDd3CKZ3r42JbwiM0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"aivVLsO\"><img alt=\"\" class=\"alignnone size-full wp-image-599\" decoding=\"async\" height=\"98\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19010e1b143.png\" width=\"239\"\/><\/p>\n<h3>3. Mapowanie kardynalno\u015bci i relacji w stylu Crow\u2019s Foot<\/h3>\n<p>Aby po\u0142\u0105czy\u0107 tabele i zapewni\u0107 ograniczenia integralno\u015bci referencyjnej, u\u017cyj kombinacji my\u015blnik\u00f3w, nawias\u00f3w i znak\u00f3w pionowej kreski. W notacji IE te symbole tworz\u0105 wyra\u017ane **g\u0142owy koguta** reprezentuj\u0105ce relacje w bazie danych:<\/p>\n<ul>\n<li><code>||--||<\/code> **Dok\u0142adnie jeden do dok\u0142adnie jednego:** \u015bci\u015ble okre\u015blone, wymagane odwzorowanie jeden do jednego.<\/li>\n<li><code>||--o|<\/code> **Dok\u0142adnie jeden do zera lub jednego:** opcjonalne odwzorowanie jeden do jednego.<\/li>\n<li><code>||--|{<\/code> **Dok\u0142adnie jeden do jednego lub wielu:** wymagana zale\u017cno\u015b\u0107 jeden do wielu.<\/li>\n<li><code>||--o{<\/code> **Dok\u0142adnie jeden do zera, jednego lub wielu:** standardowa, opcjonalna relacja jeden do wielu.<\/li>\n<\/ul>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">users_table ||--o{ orders : \"places\"<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:AorEBIgEBqbCoabLgAdHrSslLiWlIW6AALWfA1Na92Qd5Yi10000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"BYtNcjJ\"><img alt=\"\" class=\"alignnone size-full wp-image-600\" decoding=\"async\" height=\"174\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a190119b741e.png\" width=\"114\"\/><\/p>\n<h2>Najlepsze praktyki dla czystych schemat\u00f3w baz danych<\/h2>\n<ul>\n<li><strong>Utrzymuj zasady nazywania:<\/strong> Zachowaj przewidywalno\u015b\u0107 deklaracji encji. U\u017cywaj ma\u0142ych liter w formacie snake_case (np. <code>order_items<\/code>) dla rzeczywistych tabel zmapowanych na SQL, lub u\u017cywaj wielkich liter w formacie CamelCase dla modeli koncepcyjnych domeny.<\/li>\n<li><strong>Zawsze dokumentuj klucze obce:<\/strong> Gdy \u0142\u0105czy si\u0119 dwie tabele, zawsze okre\u015bl kolumn\u0119 klucza obcego w bloku tabeli potomnej. Dzi\u0119ki temu zespo\u0142y in\u017cynieryjne maj\u0105 jasne konteksty odniesienia podczas migracji danych.<\/li>\n<li><strong>Kontroluj odst\u0119py w stylu Crow\u2019s Foot:<\/strong> Z\u0142o\u017cone schematy baz danych z dziesi\u0105tkami tabel mog\u0105 szybko sta\u0107 si\u0119 zat\u0142oczone. Je\u015bli linie relacji zaczynaj\u0105 si\u0119 nieprzyjemnie przecina\u0107, zast\u0105p dwukrotnie my\u015blniki (<code>--<\/code>) trzema lub czterema my\u015blnikami (<code>---<\/code>) aby oddzieli\u0107 tabele i da\u0107 silnikowi uk\u0142adania wi\u0119cej miejsca do organizacji siatki.<\/li>\n<\/ul>\n<h2>Przyk\u0142ady ERD PlantUML z rzeczywistych zastosowa\u0144<\/h2>\n<h3>Przyk\u0142ad 1: Podstawowy model relacyjny e-commerce (klucze i mapowania)<\/h3>\n<p>Ten szablon funkcjonalny modeluje podstawowy cykl transakcji bazy danych e-commerce, pokazuj\u0105c, jak u\u017cytkownicy, zam\u00f3wienia i ksi\u0119gi p\u0142atno\u015bci s\u0105 ze sob\u0105 powi\u0105zane za pomoc\u0105 \u015bci\u015ble okre\u015blonych relacji typu \u201ek\u0142oda kruka\u201d.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZP9DQy9048RlWVo7mOkjD605BoAY-46bLaIaq5COap5PckocknkirVxtJZGfWLfmJyEyx-u-yp4q5hNDqyHrcZ3JH5y49Asm1zYgJz0aGz92HY2aLM1Yr1caYdCIp4UEcephn28a28GE4d8TyovaXXfJMCoNqytRQWfAsrYvZkkK3pToGzeq00qK4HnT1_YqG8JGW_bo0_t-wdamkAGzhv8fHP6mutMq7Z-DrdUFxVPzfMLep5xfq8_Hn3LFfzijFLci9DMLul9t7OklLrpdy6QmeWg_vfdzUbfWbSN4nrJbqh9XCXtFNqOBPd_eb60y0PkR6bdt3rc6XvHZFw4mgX0lySsCvuh-XTGe3GPMAEbhsX6FFQ2hdOxGqXuFLscRCA6Tu2PhIh1u2nCmGSnZWwsG8MyHByjvugUJvwbZsUKUrvTWGARXEfTC8PzELOMiHoH9yy-5PSWhoVlw0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w 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:bPB1Qjj048Rl0ht3u4lQK4CQy2M449Cun3GD8OH2Un4JQIoFLjeLkok45FSIo4EKFaQklSL-huuSEnNKb-YmMdR-PR-V_pzr7gslYZmCzk07tkT6LHbOqWbPKwDcWlBbEGVISSPGGsdaGimWFqiPQ5ERk2MdPQzgJ2nwKyj-PcpHX46bR9E1KNRvb8Q1KwnBj5Z0rVHwSlVzPWB6-ha9Wp0WxTatCAXMVnglJAqvRWQ03Yf75Xx20EJR1qxW2ARNTt1yVFFbvEJrU3ZSZgb0paNnRNnxTZc-_V3vuE3ZTZP7rqQoh1wnfpWSZJOAJpdDZExFkii_-tGj5Y_FDPDcNCCPcxo3ZfFedps5RzgBD-q-nBXwb3bxZ5HjV2SwdvnDluwlnCodmmshPE0hrqCT_OUg72z_fHoLujThi_eTynevfoHz7tFFz4vaIpEoNJymyXQrGzLLPLS8zv8zxgIMxYKqOyrIlbBiBvzQxDvpyLmozPKyacFSP9fIgSkw4ul5S6WUDX4SINCA9jV6BGx2uFMmKomMMySYIKcJhJ8InQaqN5h_5m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n' Zablokuj renderowanie p\u00f3l encji w postaci ostrej nowoczesnej kwadratowej formy\r\nukryj okr\u0105g\r\nskinparam LINETYPE ortho\r\n\r\nentity \"u\u017cytkownicy\" as user {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * email : VARCHAR(100)\r\n    * hasz_has\u0142a : VARCHAR(255)\r\n    telefon : VARCHAR(20)\r\n}\r\n\r\nentity \"zam\u00f3wienia\" as order {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * id_u\u017cytkownika : INT &lt;&lt;FK&gt;&gt;\r\n    * ca\u0142kowita_kwota : DECIMAL(10,2)\r\n    status : VARCHAR(50)\r\n}\r\n\r\nentity \"ksi\u0119gi_p\u0142atno\u015bci\" as ledger {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * id_zam\u00f3wienia : INT &lt;&lt;FK&gt;&gt;\r\n    * referencja_transakcji : VARCHAR(100)\r\n    brama : VARCHAR(50)\r\n}\r\n\r\n' Zdefiniuj powi\u0105zania schematu relacyjnego\r\nuser ||--o{ order : \"umieszcza\"\r\norder ||--|| ledger : \"generuje\"\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bPB1Qjj048Rl0ht3u4lQK4CQy2M449Cun3GD8OH2Un4JQIoFLjeLkok45FSIo4EKFaQklSL-huuSEnNKb-YmMdR-PR-V_pzr7gslYZmCzk07tkT6LHbOqWbPKwDcWlBbEGVISSPGGsdaGimWFqiPQ5ERk2MdPQzgJ2nwKyj-PcpHX46bR9E1KNRvb8Q1KwnBj5Z0rVHwSlVzPWB6-ha9Wp0WxTatCAXMVnglJAqvRWQ03Yf75Xx20EJR1qxW2ARNTt1yVFFbvEJrU3ZSZgb0paNnRNnxTZc-_V3vuE3ZTZP7rqQoh1wnfpWSZJOAJpdDZExFkii_-tGj5Y_FDPDcNCCPcxo3ZfFedps5RzgBD-q-nBXwb3bxZ5HjV2SwdvnDluwlnCodmmshPE0hrqCT_OUg72z_fHoLujThi_eTynevfoHz7tFFz4vaIpEoNJymyXQrGzLLPLS8zv8zxgIMxYKqOyrIlbBiBvzQxDvpyLmozPKyacFSP9fIgSkw4ul5S6WUDX4SINCA9jV6BGx2uFMmKomMMySYIKcJhJ8InQaqN5h_5m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZP9DQy9048RlWVo7mOkjD605BoAY-46bLaIaq5COap5PckocknkirVxtJZGfWLfmJyEyx-u-yp4q5hNDqyHrcZ3JH5y49Asm1zYgJz0aGz92HY2aLM1Yr1caYdCIp4UEcephn28a28GE4d8TyovaXXfJMCoNqytRQWfAsrYvZkkK3pToGzeq00qK4HnT1_YqG8JGW_bo0_t-wdamkAGzhv8fHP6mutMq7Z-DrdUFxVPzfMLep5xfq8_Hn3LFfzijFLci9DMLul9t7OklLrpdy6QmeWg_vfdzUbfWbSN4nrJbqh9XCXtFNqOBPd_eb60y0PkR6bdt3rc6XvHZFw4mgX0lySsCvuh-XTGe3GPMAEbhsX6FFQ2hdOxGqXuFLscRCA6Tu2PhIh1u2nCmGSnZWwsG8MyHByjvugUJvwbZsUKUrvTWGARXEfTC8PzELOMiHoH9yy-5PSWhoVlw0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"UBJPtUm\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-601\" decoding=\"async\" height=\"444\" loading=\"lazy\" sizes=\"auto, (max-width: 301px) 100vw, 301px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c.png 301w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19012676e1c-203x300.png 203w\" width=\"301\"\/><\/p>\n<p><strong>Analiza sk\u0142adni:<\/strong> Dyrektywa <code>ukryj okr\u0105g<\/code> wy\u0142\u0105cza domy\u015blne okr\u0119gi token\u00f3w klasy UML, podczas gdy <code>skinparam LINETYPE ortho<\/code> wymusza \u015bcie\u017cki relacji na czyste k\u0105ty proste 90 stopni. Schemat jasno pokazuje, \u017ce u\u017cytkownik mo\u017ce umie\u015bci\u0107 zero lub wiele zam\u00f3wie\u0144 (<code>||--o{<\/code>), podczas gdy zam\u00f3wienie musi mie\u0107 dok\u0142adnie jedn\u0105 powi\u0105zan\u0105 rekord ksi\u0119gi p\u0142atno\u015bci (<code>||--||<\/code>).<\/p>\n<h3>Przyk\u0142ad 2: Zaawansowany schemat systemu zarz\u0105dzania tre\u015bci\u0105 (przeci\u0119cie wiele do wielu)<\/h3>\n<p>Ten zaawansowany szablon przedsi\u0119biorstwa modeluje kompletn\u0105 topologi\u0119 systemu zarz\u0105dzania tre\u015bci\u0105 (CMS). Pokazuje, jak sprawnie obs\u0142ugiwa\u0107 architektury wiele do wielu, wykorzystuj\u0105c tabel\u0119 po\u015bredni\u0105 do mapowania.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFVQy8m4CVV0_aV3b-s2GKty4L4bD4nsHHnPMnF9Mj36soJabmVdFg_BxK_h9qRzYcN-tBtkU-bKuDCOvucbCGYv1087IIS4hCHCcEQfV0wNxhUvye5fJ5Mb5329GhSGYzJ1aqFc87Y13jAm7vz426COBxqO3nUlKmcvRNZr6cMsphQRwcU6bKVREc4sypxRFtuF5lVFWo7TsNE97bqCV6bmgrDUEw7HycXJHWmv97IWfUOLRYz6bMojCroFnXKBKDk0Yqo54h-GZfqFVBhldxAiap8gAIfWXFCKTiXEZUdAVIFggPdneX8yj1dM9WpNxXltconwZgaqjIUAt_Au6fxki0dY6h7V_fdHr4IYrvdUxk1DKzOuIfB815o0mPr7c2kkQ7a-ChsUyTHkyQyKJ62H2QawL7IBFY2gdeAtxmGjalLKriHGsH1V5HCkGpjR_43\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w 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:bPFVQi8m6CNl2ts7q9jjGi4Dl14HPNHCDaMqZEsgVDHGOsrJqfIIwcvaieVOO-mHPjzhwH-hdGwsNYKzXto_dDFsGWwCHzvILIANYGMYBjjj7LK9NU87mC13ZuEHORwC3KGPdrDLKHNiSy85qW8QSg4X256sGYjLGV9f8393RJGOcQZJ6JzqkyLhNJ_85aISCgXSTvMhWRZWKRgHqbD_SdlVdrpUj5fNXHWk8-Uim1bEFtRlKZEDPrDLNeyfNU3OeOpWdDGkTkBFj3uaCHnDlMusowaq8E49Jcsq1m6DmITWPG5zVSOMiVOu9CUHZe3upZ5DxeKQKpqXQQaE-TMslq304Y4vmQTMdEKp61fJipyS_mo9Ud89B2bJebws_q-bTUe3I9xVeV3J61ldwxj0KyuYbqUogu2ccztMJd3wXXXUWYqMlh3dgf9_T-krhjDL5MKRQGd413FGLAMg-zHKPYYIQ86r-b7xwqjNcL_XwM5_9l-LRm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nukryj okr\u0105g\r\nskinparam LINETYPE ortho\r\n\r\nentity \"posty\" as post {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * id_autora : INT &lt;&lt;FK&gt;&gt;\r\n    * tytu\u0142 : VARCHAR(255)\r\n    slug : VARCHAR(255)\r\n    tre\u015b\u0107 : TEXT\r\n}\r\n\r\nentity \"kategorie\" as category {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * nazwa : VARCHAR(100)\r\n    opis : VARCHAR(255)\r\n}\r\n\r\nentity \"mapowania_post\u00f3w_i_kategorii\" as mapping {\r\n    * id_posta : INT &lt;&lt;PK&gt;&gt;&lt;&lt;FK&gt;&gt;\r\n    * id_kategorii : INT &lt;&lt;PK&gt;&gt;&lt;&lt;FK&gt;&gt;\r\n    --\r\n    przypisano_w : TIMESTAMP\r\n}\r\n\r\nentity \"komentarze\" as comment {\r\n    * id : INT &lt;&lt;PK&gt;&gt;\r\n    --\r\n    * id_posta : INT &lt;&lt;FK&gt;&gt;\r\n    nazwa_autora : VARCHAR(100)\r\n    * tre\u015b\u0107 : TEXT\r\n}\r\n\r\n' Struktury po\u0142\u0105cze\u0144 relacyjnych\r\npost ||--o{ mapping : \"zawiera\"\r\ncategory ||--o{ mapping : \"kategoryzuje\"\r\npost ||--o{ comment : \"przypisuje\"\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bPFVQi8m6CNl2ts7q9jjGi4Dl14HPNHCDaMqZEsgVDHGOsrJqfIIwcvaieVOO-mHPjzhwH-hdGwsNYKzXto_dDFsGWwCHzvILIANYGMYBjjj7LK9NU87mC13ZuEHORwC3KGPdrDLKHNiSy85qW8QSg4X256sGYjLGV9f8393RJGOcQZJ6JzqkyLhNJ_85aISCgXSTvMhWRZWKRgHqbD_SdlVdrpUj5fNXHWk8-Uim1bEFtRlKZEDPrDLNeyfNU3OeOpWdDGkTkBFj3uaCHnDlMusowaq8E49Jcsq1m6DmITWPG5zVSOMiVOu9CUHZe3upZ5DxeKQKpqXQQaE-TMslq304Y4vmQTMdEKp61fJipyS_mo9Ud89B2bJebws_q-bTUe3I9xVeV3J61ldwxj0KyuYbqUogu2ccztMJd3wXXXUWYqMlh3dgf9_T-krhjDL5MKRQGd413FGLAMg-zHKPYYIQ86r-b7xwqjNcL_XwM5_9l-LRm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZPFVQy8m4CVV0_aV3b-s2GKty4L4bD4nsHHnPMnF9Mj36soJabmVdFg_BxK_h9qRzYcN-tBtkU-bKuDCOvucbCGYv1087IIS4hCHCcEQfV0wNxhUvye5fJ5Mb5329GhSGYzJ1aqFc87Y13jAm7vz426COBxqO3nUlKmcvRNZr6cMsphQRwcU6bKVREc4sypxRFtuF5lVFWo7TsNE97bqCV6bmgrDUEw7HycXJHWmv97IWfUOLRYz6bMojCroFnXKBKDk0Yqo54h-GZfqFVBhldxAiap8gAIfWXFCKTiXEZUdAVIFggPdneX8yj1dM9WpNxXltconwZgaqjIUAt_Au6fxki0dY6h7V_fdHr4IYrvdUxk1DKzOuIfB815o0mPr7c2kkQ7a-ChsUyTHkyQyKJ62H2QawL7IBFY2gdeAtxmGjalLKriHGsH1V5HCkGpjR_43\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj Plantuml w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"uRrOAMH\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-602\" decoding=\"async\" height=\"293\" loading=\"lazy\" sizes=\"auto, (max-width: 495px) 100vw, 495px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a.png 495w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a19013a7b57a-300x178.png 300w\" width=\"495\"\/><\/p>\n<p><strong>Analiza sk\u0142adni:<\/strong> Ten szablon modeluje klasyczn\u0105 relacj\u0119 wiele do wielu mi\u0119dzy postami a kategoriami. Zamiast \u0142\u0105czy\u0107 je bezpo\u015brednio, wprowadza po\u015bredni\u0105 tabel\u0119 (<code>mapowania_post\u00f3w_i_kategorii<\/code>), w kt\u00f3rej obie kolumny pe\u0142ni\u0105 rol\u0119 klucza g\u0142\u00f3wnego z\u0142o\u017conego. Wska\u017aniki typu \u201ek\u0142oda kruka\u201d jasno pokazuj\u0105 relacje cascading na poziomie komentarzy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czym jest diagram relacji encji (ERD)? Diagram relacji encji (ERD) to strukturalny szkic u\u017cywany do projektowania, dokumentowania i analizy baz danych relacyjnych. Wizualizuje tabele (encje) w systemie, konkretne kolumny (atrybuty), kt\u00f3re zawieraj\u0105, oraz spos\u00f3b, w jaki te tabele s\u0105 ze&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":10,"template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"ld_collection":[14],"class_list":["post-2118","ld_docs","type-ld_docs","status-publish","hentry","ld_collection-vpascode-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide<\/title>\n<meta name=\"description\" content=\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide\" \/>\n<meta property=\"og:description\" content=\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\",\"name\":\"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\",\"datePublished\":\"2026-05-26T07:38:24+00:00\",\"description\":\"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a1901022bcfe.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/vpascode-docs\\\/plantuml-erd-syntax-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lean Docs\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/docs\\\/%ld_collection%\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Przewodnik po sk\u0142adni PlantUML ERD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","og_locale":"pl_PL","og_type":"article","og_title":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","og_description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","og_url":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","og_site_name":"VPasCode","og_image":[{"url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"4 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","url":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/","name":"PlantUML ERD Diagram Syntax | VPasCode Text to Diagram Guide","isPartOf":{"@id":"https:\/\/www.vpascode.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","datePublished":"2026-05-26T07:38:24+00:00","description":"Design relational database schemas with PlantUML entity relationship diagrams in VPasCode, a free diagram-as-code tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png","contentUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a1901022bcfe.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/pl\/docs\/vpascode-docs\/plantuml-erd-syntax-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Lean Docs","item":"https:\/\/www.vpascode.com\/pl\/docs\/%ld_collection%\/"},{"@type":"ListItem","position":3,"name":"Przewodnik po sk\u0142adni PlantUML ERD"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/pl\/#website","url":"https:\/\/www.vpascode.com\/pl\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/pl\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.vpascode.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/pl\/wp-content\/uploads\/sites\/9\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/pl\/wp-content\/uploads\/sites\/9\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/ld_docs\/2118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/ld_docs"}],"about":[{"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/types\/ld_docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/users\/4"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/media?parent=2118"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/pl\/wp-json\/wp\/v2\/ld_collection?post=2118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}