X-Git-Url: https://git.auder.net/?p=erdiag.git;a=blobdiff_plain;f=README.md;h=4cc50cf36112516395de9c947d8df44ca9afc7c9;hp=acf706ea4e311240e017fa47bba8d34225048ab2;hb=HEAD;hpb=48a55161a22d169781fa3e0805ed2da7dac952cf diff --git a/README.md b/README.md index acf706e..4cc50cf 100644 --- a/README.md +++ b/README.md @@ -5,20 +5,15 @@ Inspired by [this repository](https://code.google.com/archive/p/merisier/). This parser reads ER diagrams definition files, and produces two types of diagrams + SQL code. [Graphviz](https://www.graphviz.org/) is used on server side to translate parsed graph descriptions into SVG objects. -*Note:* at the moment only the conceptual graph is implemented, and no comments are allowed in textual descriptions. -At least the former is planned, and also probably a way to indicate relative identifiers, and maybe links between relationships. - -*Note bis:* temporary dependency to [underscore](http://underscorejs.org/); good library but used so far only for its shuffle() method. - ----- An entity is defined as follow [Entity] - #attr1 (*) + +attr1 (*) attr2 (*) -with (\*) = optional SQL indications, and # denoting a (part of) a key. +with (\*) = optional SQL indications, and + denoting a (part of) an identifier. A relationship is defined in this way @@ -37,6 +32,14 @@ Cardinality dictionary: * 1 = 1..1 * ? = 0..1 +Special cardinalities are also available to indicate relative identification: `?R` and `1R`. + +And, in case of a self-relationship, symbols '>' and '<' can indicate the sense, as in + + {manage} + Users *> + Users 1< + To mark a weak entity, just surround its name by extra-brackets [[WeakEntity]] @@ -53,8 +56,19 @@ To indicate an inheritance relation, proceed as follow Animal Cat Fish Planet Mars Venus -Finally, blocks must be separated by new lines. For a usage example, see example.html (it should render as seen in example.svg) +Finally, blocks must be separated by new lines. For a usage example, see example.html (it should render as seen in example\_\*.svg); +or example2.html for a bigger, more realistic illustration (small social network). Note that the "drawMcd" method can take a second argument, which indicates the type of graph. - * "bubble" draws the standard graph, as seen [here](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#/media/File:ER_Diagram_MMORPG.png) for example + * "bubble" draws the standard graph, as seen [here](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#/media/File:ER_Diagram_MMORPG.png) * "compact" (default) use the same box for an entity and its attributes + +----- + +**TODO** list: + + - functional integrity constraints (CIF) + - inter-relations constraints (or, and, xor, inclusion) + - inheritance with the right symbol (triangle) + +*Implementation note:* temporary dependency to [underscore](http://underscorejs.org/); used only for its shuffle() method.