From: Benjamin Auder <benjamin.auder@somewhere>
Date: Fri, 2 Feb 2018 19:58:32 +0000 (+0100)
Subject: Fix doubling tables in n-ary relationships with 0,1 / 1,1
X-Git-Url: https://git.auder.net/doc/html/pieces/%7B%7B%20asset%28%27mixstore/images/index.css?a=commitdiff_plain;h=e570c0aab6f7b776cb8c6ce3c7d64c585deb66a0;p=erdiag.git

Fix doubling tables in n-ary relationships with 0,1 / 1,1
---

diff --git a/parser.js b/parser.js
index da8a1d5..6d028fd 100644
--- a/parser.js
+++ b/parser.js
@@ -192,9 +192,11 @@ class ErDiags
 		// Pass 2: parse associations, add foreign keys when cardinality is 0,1 or 1,1
 		this.associations.forEach( a => {
 			let newTableAttrs = [ ];
+			let hasZeroOne = false;
 			a.entities.forEach( e => {
 				if (['?','1'].includes(e.card[0]))
 				{
+					hasZeroOne = true;
 					// Foreign key apparition (for each entity in association minus current one, for each identifying attribute)
 					a.entities.forEach( e2 => {
 						if (e2.name == e.name)
@@ -223,7 +225,7 @@ class ErDiags
 					});
 				}
 			});
-			if (newTableAttrs.length > 1)
+			if (!hasZeroOne && newTableAttrs.length > 1)
 			{
 				// Ok, really create a new table
 				let newTable = {