TikZ Crow's Foot notation on only one side for documentationHow to create an ER diagram using tikzpicture environmentCrow's Foot ERM in nice wayRounded corners on only one side of a TikZ nodeWhich database documentation software do you use for LaTeX (in Linux)?How to define the default vertical distance between nodes?Drawing a complete ER Diagram in Crow's foot style by TikZTikZ scaling graphic and adjust node position and keep font sizeTikZ/ERD: node (=Entity) label on the insideUsing TikZ breaks foot marginJoin multiple tikz-chains (with different lengths) into one last node at their endLine up nested tikz enviroments or how to get rid of themtorn paper problem compile

is this saw blade faulty?

Do native speakers use "ultima" and "proxima" frequently in spoken English?

Writing in a Christian voice

Exit shell with shortcut (not typing exit) that closes session properly

"Marked down as someone wanting to sell shares." What does that mean?

Difficulty understanding group delay concept

Why doesn't the chatan sign the ketubah?

What is the reasoning behind standardization (dividing by standard deviation)?

Hackerrank All Women's Codesprint 2019: Name the Product

Would this string work as string?

Why do I have a large white artefact on the rendered image?

Why is "la Gestapo" feminine?

What (if any) is the reason to buy in small local stores?

Is xar preinstalled on macOS?

pipe commands inside find -exec?

How can I create URL shortcuts/redirects for task/diff IDs in Phabricator?

Print last inputted byte

Why does Surtur say that Thor is Asgard's doom?

Air travel with refrigerated insulin

Unfrosted light bulb

CLI: Get information Ubuntu releases

Norwegian Refugee travel document

Help with identifying unique aircraft over NE Pennsylvania

Asserting that Atheism and Theism are both faith based positions



TikZ Crow's Foot notation on only one side for documentation


How to create an ER diagram using tikzpicture environmentCrow's Foot ERM in nice wayRounded corners on only one side of a TikZ nodeWhich database documentation software do you use for LaTeX (in Linux)?How to define the default vertical distance between nodes?Drawing a complete ER Diagram in Crow's foot style by TikZTikZ scaling graphic and adjust node position and keep font sizeTikZ/ERD: node (=Entity) label on the insideUsing TikZ breaks foot marginJoin multiple tikz-chains (with different lengths) into one last node at their endLine up nested tikz enviroments or how to get rid of themtorn paper problem compile













3















I'm documenting the different versions of database drawing styles.
this link shows how it looks like in a real diagram but my intention is to document only one side of the connection lines. Now the sample shows really perfectly how to draw and its done by chaining some PGF and TikZ code but I'm not able to rework it to a single line ending in Crow's Foot design line end. Like a 1:1 connection is this: -||--- it always also shows the other end as if its used within a diagram 1:1-1:1 like this -||------||-.



Maybe somebody can show me how to change the PGF code to get a single Crow's Foot? Here is my MWE:



 documentclassarticle% 
usepackagetikz
usetikzlibrary%
chains,

tikzset
dummy/.style=
rectangle,
rounded corners,
draw=white, very thick,
text centered,
zig zag to/.style=
to path=- (tikztotarget) tikztonodes
,
zig zag to/.default=0.5,
one to one/.style=
one-one, zig zag to
,
one to many/.style=
one-crow's foot, zig zag to,
,
one to omany/.style=
one-omany, zig zag to
,
many to one/.style=
crow's foot-one, zig zag to
,
many to many/.style=
crow's foot-crow's foot, zig zag to
,

makeatletter
pgfarrowsdeclarecrow's footcrow's foot

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt6pt%
pgfusepathqstroke%


pgfarrowsdeclareomanyomany

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-6pt-6pt%
pgfpathcirclepgfpoint-11.5pt0 3.5pt
pgfusepathqstroke%


pgfarrowsdeclareoneone

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt6pt%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt6pt%
pgfusepathqstroke%

defproperty#1node[name=entityname-#1, every property/.try]#1;
defpropertiesbegingroupcatcode`_=11relaxprocessproperties
defprocessproperties#1endgroup%
defpropertycode%
foreach p in #1%
expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
%
propertycode%

defpk#1node[name=entityname-#1, every property/.try]#1;
node[name=entityname-#1, every property/.try, red, text width=1in, align=right,](PK);
\
deffk#1node[name=entityname-#1, every property/.try]#1;
node[name=entityname-#1, every property/.try, red, text width=1in, align=right](FK);
\




begindocument
sectionNotation Versions
begintabularlllll
NOTATION & ==1 & 0 to 1 & 1 to n & n to n \[1em]
IEM & & & & \[1em]
CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]
endtabular\[5em]
scalebox0.4
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=2cm of a] (b) ;
draw[one to one] (a.east) -- node[above] (b.west);
endtikzpicture

scalebox0.4
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=2cm of a] (b) ;
draw[one to many] (a.east) -- node[above] (b.west);
endtikzpicture

scalebox0.4
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=2cm of a] (b) ;
draw[one to omany] (a.east) -- node[above] (b.west);
endtikzpicture

scalebox0.4
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=2cm of a] (b) ;
draw[many to one] (a.east) -- node[above] (b.west);
endtikzpicture

scalebox0.4
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=2cm of a] (b) ;
draw[many to many] (a.east) -- node[above] (b.west);
endtikzpicture



enddocument


After geting this part as one side i have a additional Question about this Crow's Foot drawing lines with PGF.



I need to add a line end that is not yet implemented. It is called 0 to 1 and lookes like this: -|O---
I tried to understand how the crow's Foot is drawn but i can't follow where it comes from. Can somebody show me the code where the three toe's of the crow's foot are drawn/coded?
Maybe then i can get a blend of "one" = -||--- and "omany" = /|O---



This is the end product of this discussion for anybody whanting to do the same in future:



 documentclassarticle % say 
usepackagetikz
usetikzlibrary%
chains,

tikzset
dummy/.style=
rectangle,
rounded corners,
draw=white, very thick,
text centered,
zig zag to/.style= %this is the connection of lines and nodes
to path=- (tikztotarget) tikztonodes
,
zig zag to/.default=0.5,
one to one/.style=
one-one, zig zag to
,
none to one/.style=
one-, zig zag to
,
none to oone/.style=
oone-, zig zag to
,
one to many/.style=
one-crow's foot, zig zag to,
,
none to many/.style=
crow's foot-, zig zag to,
,
one to omany/.style=
one-omany, zig zag to
,
none to omany/.style=
omany-, zig zag to
,
many to one/.style=
crow's foot-one, zig zag to
,
many to many/.style=
crow's foot-crow's foot, zig zag to
,

makeatletter
pgfarrowsdeclarecrow's footcrow's foot %this is many

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt6pt%
pgfusepathqstroke%


pgfarrowsdeclareomanyomany %this is omany

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-6pt-6pt%
pgfpathcirclepgfpoint-11.5pt0 3.5pt
pgfusepathqstroke%


pgfarrowsdeclareoneone %this is one

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt6pt%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt-6pt%
pgfpathlinetopgfqpoint-8pt6pt%
pgfusepathqstroke%


pgfarrowsdeclareooneoone

pgfarrowsleftextend+-.5pgflinewidth%
pgfarrowsrightextend+.5pgflinewidth%


pgfutil@tempdima=0.6pt%
%advancepgfutil@tempdima by.25pgflinewidth%
pgfsetdash+0pt%
pgfsetmiterjoin%
pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
pgfpathmovetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt-6pt%
pgfpathlinetopgfqpoint-6pt6pt%
pgfpathcirclepgfpoint-11.5pt0 3.5pt
pgfusepathqstroke%


defproperty#1node[name=entityname-#1, every property/.try]#1;
defpropertiesbegingroupcatcode`_=11relaxprocessproperties
defprocessproperties#1endgroup%
defpropertycode%
foreach p in #1%
expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
%
propertycode%

begindocument

sectionNotation Versions
begintabularlllll
NOTATION & ==1 & 0 to 1 & 1 to n & 0 to m \[1em]%zeile 1
IEM / crow's foot%
& % == 1
scalebox0.5
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=1cm of a] (b) ;
draw[none to one] (a.east) -- node[above] (b.west);
endtikzpicture
& % 0 to 1
scalebox0.5
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=1cm of a] (b) ;
draw[none to oone] (a.east) -- node[above] (b.west);
endtikzpicture
& % 1 to n
scalebox0.5
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=1cm of a] (b) ;
draw[none to many] (a.east) -- node[above] (b.west);
endtikzpicture
& % n to m
scalebox0.5
begintikzpicture
node[dummy, inner sep=5pt] (a) ;
node[dummy, inner sep=5pt,right=1cm of a] (b) ;
draw[none to omany] (a.east) -- node[above] (b.west);
endtikzpicture
\[1em]%zeile 2
CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]%zeile 3
endtabular\[2em]
enddocument


enter image description here










share|improve this question




























    3















    I'm documenting the different versions of database drawing styles.
    this link shows how it looks like in a real diagram but my intention is to document only one side of the connection lines. Now the sample shows really perfectly how to draw and its done by chaining some PGF and TikZ code but I'm not able to rework it to a single line ending in Crow's Foot design line end. Like a 1:1 connection is this: -||--- it always also shows the other end as if its used within a diagram 1:1-1:1 like this -||------||-.



    Maybe somebody can show me how to change the PGF code to get a single Crow's Foot? Here is my MWE:



     documentclassarticle% 
    usepackagetikz
    usetikzlibrary%
    chains,

    tikzset
    dummy/.style=
    rectangle,
    rounded corners,
    draw=white, very thick,
    text centered,
    zig zag to/.style=
    to path=- (tikztotarget) tikztonodes
    ,
    zig zag to/.default=0.5,
    one to one/.style=
    one-one, zig zag to
    ,
    one to many/.style=
    one-crow's foot, zig zag to,
    ,
    one to omany/.style=
    one-omany, zig zag to
    ,
    many to one/.style=
    crow's foot-one, zig zag to
    ,
    many to many/.style=
    crow's foot-crow's foot, zig zag to
    ,

    makeatletter
    pgfarrowsdeclarecrow's footcrow's foot

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
    pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
    pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt6pt%
    pgfusepathqstroke%


    pgfarrowsdeclareomanyomany

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
    pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
    pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-6pt-6pt%
    pgfpathcirclepgfpoint-11.5pt0 3.5pt
    pgfusepathqstroke%


    pgfarrowsdeclareoneone

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt6pt%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt6pt%
    pgfusepathqstroke%

    defproperty#1node[name=entityname-#1, every property/.try]#1;
    defpropertiesbegingroupcatcode`_=11relaxprocessproperties
    defprocessproperties#1endgroup%
    defpropertycode%
    foreach p in #1%
    expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
    expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
    %
    propertycode%

    defpk#1node[name=entityname-#1, every property/.try]#1;
    node[name=entityname-#1, every property/.try, red, text width=1in, align=right,](PK);
    \
    deffk#1node[name=entityname-#1, every property/.try]#1;
    node[name=entityname-#1, every property/.try, red, text width=1in, align=right](FK);
    \




    begindocument
    sectionNotation Versions
    begintabularlllll
    NOTATION & ==1 & 0 to 1 & 1 to n & n to n \[1em]
    IEM & & & & \[1em]
    CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]
    endtabular\[5em]
    scalebox0.4
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=2cm of a] (b) ;
    draw[one to one] (a.east) -- node[above] (b.west);
    endtikzpicture

    scalebox0.4
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=2cm of a] (b) ;
    draw[one to many] (a.east) -- node[above] (b.west);
    endtikzpicture

    scalebox0.4
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=2cm of a] (b) ;
    draw[one to omany] (a.east) -- node[above] (b.west);
    endtikzpicture

    scalebox0.4
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=2cm of a] (b) ;
    draw[many to one] (a.east) -- node[above] (b.west);
    endtikzpicture

    scalebox0.4
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=2cm of a] (b) ;
    draw[many to many] (a.east) -- node[above] (b.west);
    endtikzpicture



    enddocument


    After geting this part as one side i have a additional Question about this Crow's Foot drawing lines with PGF.



    I need to add a line end that is not yet implemented. It is called 0 to 1 and lookes like this: -|O---
    I tried to understand how the crow's Foot is drawn but i can't follow where it comes from. Can somebody show me the code where the three toe's of the crow's foot are drawn/coded?
    Maybe then i can get a blend of "one" = -||--- and "omany" = /|O---



    This is the end product of this discussion for anybody whanting to do the same in future:



     documentclassarticle % say 
    usepackagetikz
    usetikzlibrary%
    chains,

    tikzset
    dummy/.style=
    rectangle,
    rounded corners,
    draw=white, very thick,
    text centered,
    zig zag to/.style= %this is the connection of lines and nodes
    to path=- (tikztotarget) tikztonodes
    ,
    zig zag to/.default=0.5,
    one to one/.style=
    one-one, zig zag to
    ,
    none to one/.style=
    one-, zig zag to
    ,
    none to oone/.style=
    oone-, zig zag to
    ,
    one to many/.style=
    one-crow's foot, zig zag to,
    ,
    none to many/.style=
    crow's foot-, zig zag to,
    ,
    one to omany/.style=
    one-omany, zig zag to
    ,
    none to omany/.style=
    omany-, zig zag to
    ,
    many to one/.style=
    crow's foot-one, zig zag to
    ,
    many to many/.style=
    crow's foot-crow's foot, zig zag to
    ,

    makeatletter
    pgfarrowsdeclarecrow's footcrow's foot %this is many

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
    pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
    pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt6pt%
    pgfusepathqstroke%


    pgfarrowsdeclareomanyomany %this is omany

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
    pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
    pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-6pt-6pt%
    pgfpathcirclepgfpoint-11.5pt0 3.5pt
    pgfusepathqstroke%


    pgfarrowsdeclareoneone %this is one

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt6pt%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt-6pt%
    pgfpathlinetopgfqpoint-8pt6pt%
    pgfusepathqstroke%


    pgfarrowsdeclareooneoone

    pgfarrowsleftextend+-.5pgflinewidth%
    pgfarrowsrightextend+.5pgflinewidth%


    pgfutil@tempdima=0.6pt%
    %advancepgfutil@tempdima by.25pgflinewidth%
    pgfsetdash+0pt%
    pgfsetmiterjoin%
    pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
    pgfpathmovetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt-6pt%
    pgfpathlinetopgfqpoint-6pt6pt%
    pgfpathcirclepgfpoint-11.5pt0 3.5pt
    pgfusepathqstroke%


    defproperty#1node[name=entityname-#1, every property/.try]#1;
    defpropertiesbegingroupcatcode`_=11relaxprocessproperties
    defprocessproperties#1endgroup%
    defpropertycode%
    foreach p in #1%
    expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
    expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
    %
    propertycode%

    begindocument

    sectionNotation Versions
    begintabularlllll
    NOTATION & ==1 & 0 to 1 & 1 to n & 0 to m \[1em]%zeile 1
    IEM / crow's foot%
    & % == 1
    scalebox0.5
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=1cm of a] (b) ;
    draw[none to one] (a.east) -- node[above] (b.west);
    endtikzpicture
    & % 0 to 1
    scalebox0.5
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=1cm of a] (b) ;
    draw[none to oone] (a.east) -- node[above] (b.west);
    endtikzpicture
    & % 1 to n
    scalebox0.5
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=1cm of a] (b) ;
    draw[none to many] (a.east) -- node[above] (b.west);
    endtikzpicture
    & % n to m
    scalebox0.5
    begintikzpicture
    node[dummy, inner sep=5pt] (a) ;
    node[dummy, inner sep=5pt,right=1cm of a] (b) ;
    draw[none to omany] (a.east) -- node[above] (b.west);
    endtikzpicture
    \[1em]%zeile 2
    CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]%zeile 3
    endtabular\[2em]
    enddocument


    enter image description here










    share|improve this question


























      3












      3








      3


      0






      I'm documenting the different versions of database drawing styles.
      this link shows how it looks like in a real diagram but my intention is to document only one side of the connection lines. Now the sample shows really perfectly how to draw and its done by chaining some PGF and TikZ code but I'm not able to rework it to a single line ending in Crow's Foot design line end. Like a 1:1 connection is this: -||--- it always also shows the other end as if its used within a diagram 1:1-1:1 like this -||------||-.



      Maybe somebody can show me how to change the PGF code to get a single Crow's Foot? Here is my MWE:



       documentclassarticle% 
      usepackagetikz
      usetikzlibrary%
      chains,

      tikzset
      dummy/.style=
      rectangle,
      rounded corners,
      draw=white, very thick,
      text centered,
      zig zag to/.style=
      to path=- (tikztotarget) tikztonodes
      ,
      zig zag to/.default=0.5,
      one to one/.style=
      one-one, zig zag to
      ,
      one to many/.style=
      one-crow's foot, zig zag to,
      ,
      one to omany/.style=
      one-omany, zig zag to
      ,
      many to one/.style=
      crow's foot-one, zig zag to
      ,
      many to many/.style=
      crow's foot-crow's foot, zig zag to
      ,

      makeatletter
      pgfarrowsdeclarecrow's footcrow's foot

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareomanyomany

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      pgfarrowsdeclareoneone

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%

      defproperty#1node[name=entityname-#1, every property/.try]#1;
      defpropertiesbegingroupcatcode`_=11relaxprocessproperties
      defprocessproperties#1endgroup%
      defpropertycode%
      foreach p in #1%
      expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
      expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
      %
      propertycode%

      defpk#1node[name=entityname-#1, every property/.try]#1;
      node[name=entityname-#1, every property/.try, red, text width=1in, align=right,](PK);
      \
      deffk#1node[name=entityname-#1, every property/.try]#1;
      node[name=entityname-#1, every property/.try, red, text width=1in, align=right](FK);
      \




      begindocument
      sectionNotation Versions
      begintabularlllll
      NOTATION & ==1 & 0 to 1 & 1 to n & n to n \[1em]
      IEM & & & & \[1em]
      CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]
      endtabular\[5em]
      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to one] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to many] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to omany] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[many to one] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[many to many] (a.east) -- node[above] (b.west);
      endtikzpicture



      enddocument


      After geting this part as one side i have a additional Question about this Crow's Foot drawing lines with PGF.



      I need to add a line end that is not yet implemented. It is called 0 to 1 and lookes like this: -|O---
      I tried to understand how the crow's Foot is drawn but i can't follow where it comes from. Can somebody show me the code where the three toe's of the crow's foot are drawn/coded?
      Maybe then i can get a blend of "one" = -||--- and "omany" = /|O---



      This is the end product of this discussion for anybody whanting to do the same in future:



       documentclassarticle % say 
      usepackagetikz
      usetikzlibrary%
      chains,

      tikzset
      dummy/.style=
      rectangle,
      rounded corners,
      draw=white, very thick,
      text centered,
      zig zag to/.style= %this is the connection of lines and nodes
      to path=- (tikztotarget) tikztonodes
      ,
      zig zag to/.default=0.5,
      one to one/.style=
      one-one, zig zag to
      ,
      none to one/.style=
      one-, zig zag to
      ,
      none to oone/.style=
      oone-, zig zag to
      ,
      one to many/.style=
      one-crow's foot, zig zag to,
      ,
      none to many/.style=
      crow's foot-, zig zag to,
      ,
      one to omany/.style=
      one-omany, zig zag to
      ,
      none to omany/.style=
      omany-, zig zag to
      ,
      many to one/.style=
      crow's foot-one, zig zag to
      ,
      many to many/.style=
      crow's foot-crow's foot, zig zag to
      ,

      makeatletter
      pgfarrowsdeclarecrow's footcrow's foot %this is many

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareomanyomany %this is omany

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      pgfarrowsdeclareoneone %this is one

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareooneoone

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      defproperty#1node[name=entityname-#1, every property/.try]#1;
      defpropertiesbegingroupcatcode`_=11relaxprocessproperties
      defprocessproperties#1endgroup%
      defpropertycode%
      foreach p in #1%
      expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
      expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
      %
      propertycode%

      begindocument

      sectionNotation Versions
      begintabularlllll
      NOTATION & ==1 & 0 to 1 & 1 to n & 0 to m \[1em]%zeile 1
      IEM / crow's foot%
      & % == 1
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to one] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % 0 to 1
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to oone] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % 1 to n
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to many] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % n to m
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to omany] (a.east) -- node[above] (b.west);
      endtikzpicture
      \[1em]%zeile 2
      CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]%zeile 3
      endtabular\[2em]
      enddocument


      enter image description here










      share|improve this question
















      I'm documenting the different versions of database drawing styles.
      this link shows how it looks like in a real diagram but my intention is to document only one side of the connection lines. Now the sample shows really perfectly how to draw and its done by chaining some PGF and TikZ code but I'm not able to rework it to a single line ending in Crow's Foot design line end. Like a 1:1 connection is this: -||--- it always also shows the other end as if its used within a diagram 1:1-1:1 like this -||------||-.



      Maybe somebody can show me how to change the PGF code to get a single Crow's Foot? Here is my MWE:



       documentclassarticle% 
      usepackagetikz
      usetikzlibrary%
      chains,

      tikzset
      dummy/.style=
      rectangle,
      rounded corners,
      draw=white, very thick,
      text centered,
      zig zag to/.style=
      to path=- (tikztotarget) tikztonodes
      ,
      zig zag to/.default=0.5,
      one to one/.style=
      one-one, zig zag to
      ,
      one to many/.style=
      one-crow's foot, zig zag to,
      ,
      one to omany/.style=
      one-omany, zig zag to
      ,
      many to one/.style=
      crow's foot-one, zig zag to
      ,
      many to many/.style=
      crow's foot-crow's foot, zig zag to
      ,

      makeatletter
      pgfarrowsdeclarecrow's footcrow's foot

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareomanyomany

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      pgfarrowsdeclareoneone

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%

      defproperty#1node[name=entityname-#1, every property/.try]#1;
      defpropertiesbegingroupcatcode`_=11relaxprocessproperties
      defprocessproperties#1endgroup%
      defpropertycode%
      foreach p in #1%
      expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
      expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
      %
      propertycode%

      defpk#1node[name=entityname-#1, every property/.try]#1;
      node[name=entityname-#1, every property/.try, red, text width=1in, align=right,](PK);
      \
      deffk#1node[name=entityname-#1, every property/.try]#1;
      node[name=entityname-#1, every property/.try, red, text width=1in, align=right](FK);
      \




      begindocument
      sectionNotation Versions
      begintabularlllll
      NOTATION & ==1 & 0 to 1 & 1 to n & n to n \[1em]
      IEM & & & & \[1em]
      CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]
      endtabular\[5em]
      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to one] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to many] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[one to omany] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[many to one] (a.east) -- node[above] (b.west);
      endtikzpicture

      scalebox0.4
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=2cm of a] (b) ;
      draw[many to many] (a.east) -- node[above] (b.west);
      endtikzpicture



      enddocument


      After geting this part as one side i have a additional Question about this Crow's Foot drawing lines with PGF.



      I need to add a line end that is not yet implemented. It is called 0 to 1 and lookes like this: -|O---
      I tried to understand how the crow's Foot is drawn but i can't follow where it comes from. Can somebody show me the code where the three toe's of the crow's foot are drawn/coded?
      Maybe then i can get a blend of "one" = -||--- and "omany" = /|O---



      This is the end product of this discussion for anybody whanting to do the same in future:



       documentclassarticle % say 
      usepackagetikz
      usetikzlibrary%
      chains,

      tikzset
      dummy/.style=
      rectangle,
      rounded corners,
      draw=white, very thick,
      text centered,
      zig zag to/.style= %this is the connection of lines and nodes
      to path=- (tikztotarget) tikztonodes
      ,
      zig zag to/.default=0.5,
      one to one/.style=
      one-one, zig zag to
      ,
      none to one/.style=
      one-, zig zag to
      ,
      none to oone/.style=
      oone-, zig zag to
      ,
      one to many/.style=
      one-crow's foot, zig zag to,
      ,
      none to many/.style=
      crow's foot-, zig zag to,
      ,
      one to omany/.style=
      one-omany, zig zag to
      ,
      none to omany/.style=
      omany-, zig zag to
      ,
      many to one/.style=
      crow's foot-one, zig zag to
      ,
      many to many/.style=
      crow's foot-crow's foot, zig zag to
      ,

      makeatletter
      pgfarrowsdeclarecrow's footcrow's foot %this is many

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareomanyomany %this is omany

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
      pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
      pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      pgfarrowsdeclareoneone %this is one

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt-6pt%
      pgfpathlinetopgfqpoint-8pt6pt%
      pgfusepathqstroke%


      pgfarrowsdeclareooneoone

      pgfarrowsleftextend+-.5pgflinewidth%
      pgfarrowsrightextend+.5pgflinewidth%


      pgfutil@tempdima=0.6pt%
      %advancepgfutil@tempdima by.25pgflinewidth%
      pgfsetdash+0pt%
      pgfsetmiterjoin%
      pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
      pgfpathmovetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt-6pt%
      pgfpathlinetopgfqpoint-6pt6pt%
      pgfpathcirclepgfpoint-11.5pt0 3.5pt
      pgfusepathqstroke%


      defproperty#1node[name=entityname-#1, every property/.try]#1;
      defpropertiesbegingroupcatcode`_=11relaxprocessproperties
      defprocessproperties#1endgroup%
      defpropertycode%
      foreach p in #1%
      expandafterexpandafterexpandaftergdefexpandafterexpandafterexpandafterpropertycode%
      expandafterexpandafterexpandafterexpandafterpropertycodeexpandafterpropertyexpandafterp\%
      %
      propertycode%

      begindocument

      sectionNotation Versions
      begintabularlllll
      NOTATION & ==1 & 0 to 1 & 1 to n & 0 to m \[1em]%zeile 1
      IEM / crow's foot%
      & % == 1
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to one] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % 0 to 1
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to oone] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % 1 to n
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to many] (a.east) -- node[above] (b.west);
      endtikzpicture
      & % n to m
      scalebox0.5
      begintikzpicture
      node[dummy, inner sep=5pt] (a) ;
      node[dummy, inner sep=5pt,right=1cm of a] (b) ;
      draw[none to omany] (a.east) -- node[above] (b.west);
      endtikzpicture
      \[1em]%zeile 2
      CHEN & 1:1 & 0:1 & 1:n & 0:n \[1em]%zeile 3
      endtabular\[2em]
      enddocument


      enter image description here







      tikz-pgf database tikz-chains






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Sep 29 '17 at 13:56







      novski

















      asked Sep 27 '17 at 18:11









      novskinovski

      53439




      53439




















          1 Answer
          1






          active

          oldest

          votes


















          2














          Look at the one to none style in the following MWE.



          Edit: to answer to the additional question, I've added omany to none and oone to none.



          Edit n.2: added many to one and restyled.



          documentclassarticle
          usepackagebooktabs
          usepackagearray
          renewcommandarraystretch1.4
          usepackagetikz
          tikzset
          zig zag to/.style=
          to path=- (tikztotarget) tikztonodes
          ,
          zig zag to/.default=0.5,
          one to one/.style=
          one-one, zig zag to
          ,
          one to none/.style=
          one-, zig zag to
          ,
          oone to none/.style=
          oone-, zig zag to
          ,
          omany to none/.style=
          omany-, zig zag to
          ,
          one to many/.style=
          one-crow's foot, zig zag to,
          ,
          one to omany/.style=
          one-omany, zig zag to
          ,
          many to one/.style=
          crow's foot-one, zig zag to
          ,
          many to many/.style=
          crow's foot-crow's foot, zig zag to
          ,
          many to none/.style=
          crow's foot-, zig zag to
          ,

          makeatletter
          pgfarrowsdeclarecrow's footcrow's foot

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          pgfarrowsdeclareomanyomany

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareooneoone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareoneone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          begindocument
          sectionNotation Versions
          begintabularlcc
          toprule
          Notation & IEM & CHEN \
          midrule
          one to none &
          tikzdraw[one to none] (0,0) -- ++(1.5,0); & 1:0\
          one to one & tikzdraw[one to one] (0,0) -- ++(1.5,0); & 1:1\
          one to many & tikzdraw[one to many] (0,0) -- ++(1.5,0); & 1:n\
          many to none & tikzdraw[many to none] (0,0) -- ++(1.5,0); & n:0\
          one to (none or one or many) &tikzdraw[one to omany] (0,0) -- ++(1.5,0); & \
          many to one & tikzdraw[many to one] (0,0) -- ++(1.5,0); & n:1\
          many to many &tikzdraw[many to many] (0,0) -- ++(1.5,0); & n:m\
          (none or one or many) to none &tikzdraw[omany to none] (0,0) -- ++(1.5,0); & \
          (none or one) to none &tikzdraw[oone to none] (0,0) -- ++(1.5,0); & \
          bottomrule
          endtabular
          enddocument


          enter image description here






          share|improve this answer

























          • yes it is. where did you find "none" as keyword?

            – novski
            Sep 28 '17 at 4:15











          • @novski I invented it! You can change the name as you like!

            – CarLaTeX
            Sep 28 '17 at 5:19












          • Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

            – novski
            Sep 28 '17 at 15:49











          • @novski See my renewed answer and let me know if it's what you're looking for.

            – CarLaTeX
            Sep 28 '17 at 18:55






          • 1





            I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

            – Clément
            4 hours ago










          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "85"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f393560%2ftikz-crows-foot-notation-on-only-one-side-for-documentation%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          Look at the one to none style in the following MWE.



          Edit: to answer to the additional question, I've added omany to none and oone to none.



          Edit n.2: added many to one and restyled.



          documentclassarticle
          usepackagebooktabs
          usepackagearray
          renewcommandarraystretch1.4
          usepackagetikz
          tikzset
          zig zag to/.style=
          to path=- (tikztotarget) tikztonodes
          ,
          zig zag to/.default=0.5,
          one to one/.style=
          one-one, zig zag to
          ,
          one to none/.style=
          one-, zig zag to
          ,
          oone to none/.style=
          oone-, zig zag to
          ,
          omany to none/.style=
          omany-, zig zag to
          ,
          one to many/.style=
          one-crow's foot, zig zag to,
          ,
          one to omany/.style=
          one-omany, zig zag to
          ,
          many to one/.style=
          crow's foot-one, zig zag to
          ,
          many to many/.style=
          crow's foot-crow's foot, zig zag to
          ,
          many to none/.style=
          crow's foot-, zig zag to
          ,

          makeatletter
          pgfarrowsdeclarecrow's footcrow's foot

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          pgfarrowsdeclareomanyomany

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareooneoone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareoneone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          begindocument
          sectionNotation Versions
          begintabularlcc
          toprule
          Notation & IEM & CHEN \
          midrule
          one to none &
          tikzdraw[one to none] (0,0) -- ++(1.5,0); & 1:0\
          one to one & tikzdraw[one to one] (0,0) -- ++(1.5,0); & 1:1\
          one to many & tikzdraw[one to many] (0,0) -- ++(1.5,0); & 1:n\
          many to none & tikzdraw[many to none] (0,0) -- ++(1.5,0); & n:0\
          one to (none or one or many) &tikzdraw[one to omany] (0,0) -- ++(1.5,0); & \
          many to one & tikzdraw[many to one] (0,0) -- ++(1.5,0); & n:1\
          many to many &tikzdraw[many to many] (0,0) -- ++(1.5,0); & n:m\
          (none or one or many) to none &tikzdraw[omany to none] (0,0) -- ++(1.5,0); & \
          (none or one) to none &tikzdraw[oone to none] (0,0) -- ++(1.5,0); & \
          bottomrule
          endtabular
          enddocument


          enter image description here






          share|improve this answer

























          • yes it is. where did you find "none" as keyword?

            – novski
            Sep 28 '17 at 4:15











          • @novski I invented it! You can change the name as you like!

            – CarLaTeX
            Sep 28 '17 at 5:19












          • Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

            – novski
            Sep 28 '17 at 15:49











          • @novski See my renewed answer and let me know if it's what you're looking for.

            – CarLaTeX
            Sep 28 '17 at 18:55






          • 1





            I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

            – Clément
            4 hours ago















          2














          Look at the one to none style in the following MWE.



          Edit: to answer to the additional question, I've added omany to none and oone to none.



          Edit n.2: added many to one and restyled.



          documentclassarticle
          usepackagebooktabs
          usepackagearray
          renewcommandarraystretch1.4
          usepackagetikz
          tikzset
          zig zag to/.style=
          to path=- (tikztotarget) tikztonodes
          ,
          zig zag to/.default=0.5,
          one to one/.style=
          one-one, zig zag to
          ,
          one to none/.style=
          one-, zig zag to
          ,
          oone to none/.style=
          oone-, zig zag to
          ,
          omany to none/.style=
          omany-, zig zag to
          ,
          one to many/.style=
          one-crow's foot, zig zag to,
          ,
          one to omany/.style=
          one-omany, zig zag to
          ,
          many to one/.style=
          crow's foot-one, zig zag to
          ,
          many to many/.style=
          crow's foot-crow's foot, zig zag to
          ,
          many to none/.style=
          crow's foot-, zig zag to
          ,

          makeatletter
          pgfarrowsdeclarecrow's footcrow's foot

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          pgfarrowsdeclareomanyomany

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareooneoone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareoneone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          begindocument
          sectionNotation Versions
          begintabularlcc
          toprule
          Notation & IEM & CHEN \
          midrule
          one to none &
          tikzdraw[one to none] (0,0) -- ++(1.5,0); & 1:0\
          one to one & tikzdraw[one to one] (0,0) -- ++(1.5,0); & 1:1\
          one to many & tikzdraw[one to many] (0,0) -- ++(1.5,0); & 1:n\
          many to none & tikzdraw[many to none] (0,0) -- ++(1.5,0); & n:0\
          one to (none or one or many) &tikzdraw[one to omany] (0,0) -- ++(1.5,0); & \
          many to one & tikzdraw[many to one] (0,0) -- ++(1.5,0); & n:1\
          many to many &tikzdraw[many to many] (0,0) -- ++(1.5,0); & n:m\
          (none or one or many) to none &tikzdraw[omany to none] (0,0) -- ++(1.5,0); & \
          (none or one) to none &tikzdraw[oone to none] (0,0) -- ++(1.5,0); & \
          bottomrule
          endtabular
          enddocument


          enter image description here






          share|improve this answer

























          • yes it is. where did you find "none" as keyword?

            – novski
            Sep 28 '17 at 4:15











          • @novski I invented it! You can change the name as you like!

            – CarLaTeX
            Sep 28 '17 at 5:19












          • Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

            – novski
            Sep 28 '17 at 15:49











          • @novski See my renewed answer and let me know if it's what you're looking for.

            – CarLaTeX
            Sep 28 '17 at 18:55






          • 1





            I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

            – Clément
            4 hours ago













          2












          2








          2







          Look at the one to none style in the following MWE.



          Edit: to answer to the additional question, I've added omany to none and oone to none.



          Edit n.2: added many to one and restyled.



          documentclassarticle
          usepackagebooktabs
          usepackagearray
          renewcommandarraystretch1.4
          usepackagetikz
          tikzset
          zig zag to/.style=
          to path=- (tikztotarget) tikztonodes
          ,
          zig zag to/.default=0.5,
          one to one/.style=
          one-one, zig zag to
          ,
          one to none/.style=
          one-, zig zag to
          ,
          oone to none/.style=
          oone-, zig zag to
          ,
          omany to none/.style=
          omany-, zig zag to
          ,
          one to many/.style=
          one-crow's foot, zig zag to,
          ,
          one to omany/.style=
          one-omany, zig zag to
          ,
          many to one/.style=
          crow's foot-one, zig zag to
          ,
          many to many/.style=
          crow's foot-crow's foot, zig zag to
          ,
          many to none/.style=
          crow's foot-, zig zag to
          ,

          makeatletter
          pgfarrowsdeclarecrow's footcrow's foot

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          pgfarrowsdeclareomanyomany

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareooneoone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareoneone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          begindocument
          sectionNotation Versions
          begintabularlcc
          toprule
          Notation & IEM & CHEN \
          midrule
          one to none &
          tikzdraw[one to none] (0,0) -- ++(1.5,0); & 1:0\
          one to one & tikzdraw[one to one] (0,0) -- ++(1.5,0); & 1:1\
          one to many & tikzdraw[one to many] (0,0) -- ++(1.5,0); & 1:n\
          many to none & tikzdraw[many to none] (0,0) -- ++(1.5,0); & n:0\
          one to (none or one or many) &tikzdraw[one to omany] (0,0) -- ++(1.5,0); & \
          many to one & tikzdraw[many to one] (0,0) -- ++(1.5,0); & n:1\
          many to many &tikzdraw[many to many] (0,0) -- ++(1.5,0); & n:m\
          (none or one or many) to none &tikzdraw[omany to none] (0,0) -- ++(1.5,0); & \
          (none or one) to none &tikzdraw[oone to none] (0,0) -- ++(1.5,0); & \
          bottomrule
          endtabular
          enddocument


          enter image description here






          share|improve this answer















          Look at the one to none style in the following MWE.



          Edit: to answer to the additional question, I've added omany to none and oone to none.



          Edit n.2: added many to one and restyled.



          documentclassarticle
          usepackagebooktabs
          usepackagearray
          renewcommandarraystretch1.4
          usepackagetikz
          tikzset
          zig zag to/.style=
          to path=- (tikztotarget) tikztonodes
          ,
          zig zag to/.default=0.5,
          one to one/.style=
          one-one, zig zag to
          ,
          one to none/.style=
          one-, zig zag to
          ,
          oone to none/.style=
          oone-, zig zag to
          ,
          omany to none/.style=
          omany-, zig zag to
          ,
          one to many/.style=
          one-crow's foot, zig zag to,
          ,
          one to omany/.style=
          one-omany, zig zag to
          ,
          many to one/.style=
          crow's foot-one, zig zag to
          ,
          many to many/.style=
          crow's foot-crow's foot, zig zag to
          ,
          many to none/.style=
          crow's foot-, zig zag to
          ,

          makeatletter
          pgfarrowsdeclarecrow's footcrow's foot

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          pgfarrowsdeclareomanyomany

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pt-9pgfutil@tempdima%
          pgfpathlinetopgfqpoint-13pgfutil@tempdima0pt%
          pgfpathlinetopgfqpoint0pt9pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareooneoone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathcirclepgfpoint-11.5pt0 3.5pt
          pgfusepathqstroke%


          pgfarrowsdeclareoneone

          pgfarrowsleftextend+-.5pgflinewidth%
          pgfarrowsrightextend+.5pgflinewidth%


          pgfutil@tempdima=0.6pt%
          %advancepgfutil@tempdima by.25pgflinewidth%
          pgfsetdash+0pt%
          pgfsetmiterjoin%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt-6pt%
          pgfpathlinetopgfqpoint-6pt6pt%
          pgfpathmovetopgfqpoint0pgfutil@tempdima0pgfutil@tempdima%
          pgfpathmovetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt-6pt%
          pgfpathlinetopgfqpoint-8pt6pt%
          pgfusepathqstroke%


          begindocument
          sectionNotation Versions
          begintabularlcc
          toprule
          Notation & IEM & CHEN \
          midrule
          one to none &
          tikzdraw[one to none] (0,0) -- ++(1.5,0); & 1:0\
          one to one & tikzdraw[one to one] (0,0) -- ++(1.5,0); & 1:1\
          one to many & tikzdraw[one to many] (0,0) -- ++(1.5,0); & 1:n\
          many to none & tikzdraw[many to none] (0,0) -- ++(1.5,0); & n:0\
          one to (none or one or many) &tikzdraw[one to omany] (0,0) -- ++(1.5,0); & \
          many to one & tikzdraw[many to one] (0,0) -- ++(1.5,0); & n:1\
          many to many &tikzdraw[many to many] (0,0) -- ++(1.5,0); & n:m\
          (none or one or many) to none &tikzdraw[omany to none] (0,0) -- ++(1.5,0); & \
          (none or one) to none &tikzdraw[oone to none] (0,0) -- ++(1.5,0); & \
          bottomrule
          endtabular
          enddocument


          enter image description here







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 27 mins ago

























          answered Sep 27 '17 at 19:50









          CarLaTeXCarLaTeX

          33.7k551137




          33.7k551137












          • yes it is. where did you find "none" as keyword?

            – novski
            Sep 28 '17 at 4:15











          • @novski I invented it! You can change the name as you like!

            – CarLaTeX
            Sep 28 '17 at 5:19












          • Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

            – novski
            Sep 28 '17 at 15:49











          • @novski See my renewed answer and let me know if it's what you're looking for.

            – CarLaTeX
            Sep 28 '17 at 18:55






          • 1





            I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

            – Clément
            4 hours ago

















          • yes it is. where did you find "none" as keyword?

            – novski
            Sep 28 '17 at 4:15











          • @novski I invented it! You can change the name as you like!

            – CarLaTeX
            Sep 28 '17 at 5:19












          • Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

            – novski
            Sep 28 '17 at 15:49











          • @novski See my renewed answer and let me know if it's what you're looking for.

            – CarLaTeX
            Sep 28 '17 at 18:55






          • 1





            I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

            – Clément
            4 hours ago
















          yes it is. where did you find "none" as keyword?

          – novski
          Sep 28 '17 at 4:15





          yes it is. where did you find "none" as keyword?

          – novski
          Sep 28 '17 at 4:15













          @novski I invented it! You can change the name as you like!

          – CarLaTeX
          Sep 28 '17 at 5:19






          @novski I invented it! You can change the name as you like!

          – CarLaTeX
          Sep 28 '17 at 5:19














          Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

          – novski
          Sep 28 '17 at 15:49





          Ok. Thnank you, i think i overlooked first that the second line beneth none has changed as well... i now added a additional question about how pgf drawing work in the main question. maybe you have a idea to that as well?

          – novski
          Sep 28 '17 at 15:49













          @novski See my renewed answer and let me know if it's what you're looking for.

          – CarLaTeX
          Sep 28 '17 at 18:55





          @novski See my renewed answer and let me know if it's what you're looking for.

          – CarLaTeX
          Sep 28 '17 at 18:55




          1




          1





          I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

          – Clément
          4 hours ago





          I believe you forgot the "many to none/.style= crow's foot-, zig zag to " case, if I read your code correctly.

          – Clément
          4 hours ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f393560%2ftikz-crows-foot-notation-on-only-one-side-for-documentation%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          acmart: Multiple authors: all with same affiliation, one author an additional affiliationHow to Write Names of Multiple Authors with Shared Affiliation in ACM 2017 Template?Multiple authors with different primary affiliation, but same additional affiliationSame affiliation for all authors without extra packagesIOS-Book-Article.cls: one author with multiple affiliationacmart: Shared Author AffiliationMultiple authors with different primary affiliation, but same additional affiliationAuthor affiliation with only 1 authorAdding Multiple Authors with Different Affiliation in LaTeX ArticleLaTeX: Multiple authors stays on same lineHow to Label Multiple Authors with Same DescriptionHow to make two authors use the same affiliationTwo authors with same affiliation on finished front page

          How to write “ä” and other umlauts and accented letters in bibliography?Accents in BibTeXSorting references with special characters alphabeticallyUse ae ligature in bibliographyEastern European nameInverted circumflex in BibTexBibTex, non-ascii initials and nameptr fproblems with accent in LatexHow to add a Ø to my bibliography from Jabref?References without accentsTroubles when trying to cite St“omer-Verlet in ”title" field of a bib entryComprehensive list of accented charactersHow to type the letter “i” with two dots (diaeresis) in math mode?Problem with glossary text and accented lettersSpecial character in bibliographyAccented letters, Unicode and LaTeX accentsHow to stop natbib from modifying bibliography styleCitation of a paper with non-standard characters by BibtexWrite accented characters to file using writeHow to group the bibliography alphabetically, if some surnames start with “accented” characters?How can I automatically capitalize significant words in my bibliography?

          How to force a table into page width?How to make table spanning textwidthMaking table width fit into text widthTable with tabular, column type p grabbing available spaceMaking widths of tables equal to width of textblocklatex tabular width the same as the textwidthMake tabular span textwidth exactlySet width of table to be the whole line or a given portion of itIs the tabu package obsolete?What is the difference between tabular, tabular* and tabularx environments?How can i set the width of a table?Making table width fit into text widthTabular and grid typesettingMake table use page widthTable exceeds page widthtable width automatically to page widthHow to shrink table to page widthForce table column to be zero widthTable width exceeds the page widthTable extending beyond the page widthforce longtable to text width