X-Git-Url: https://git.auder.net/?p=erdiag.git;a=blobdiff_plain;f=parser.js;fp=parser.js;h=65ac9ec1fcb9ed8c3f2823707cb476650fcf9b1a;hp=2b75709dddeae00dddf82d8787b9d686a7d70033;hb=2a12fea9e4863a6d6d800c7d35fc31f4bbc87e4f;hpb=8edb29ffa12fda61a939295ce00a6d22133131d1 diff --git a/parser.js b/parser.js index 2b75709..65ac9ec 100644 --- a/parser.js +++ b/parser.js @@ -207,11 +207,13 @@ class ErDiags this.entities[e2.name].attributes.forEach( attr => { if (attr.isKey) { + // For "weak tables", foreign keys become part of the key + const isKey = e.card.length >= 2 && e.card[1] == 'R'; this.tables[e.name].push({ - isKey: e.card.length >= 2 && e.card[1] == 'R', //"weak tables" foreign keys become part of the key + isKey: isKey, name: e2.name + "_" + attr.name, type: attr.type, - qualifiers: "foreign key references " + e2.name + " " + (e.card[0]=='1' ? "not null" : ""), + qualifiers: "foreign key references " + e2.name + " " + (!isKey && e.card[0]=='1' ? "not null" : ""), ref: e2.name, //easier drawMld function (fewer regexps) }); } @@ -241,7 +243,7 @@ class ErDiags name: item.entity + "_" + f.name, isKey: true, type: f.type, - qualifiers: (f.qualifiers || "") + " foreign key references " + item.entity + " not null", + qualifiers: (f.qualifiers || "") + " foreign key references " + item.entity, ref: item.entity, }); });