|
119 | 119 | many to many/.style={ |
120 | 120 | crow's foot-crow's foot, straight to |
121 | 121 | }, |
122 | | - optional one to many/.style={ |
| 122 | + optional/.style n args={2}{ |
123 | 123 | decoration={show path construction, |
124 | 124 | lineto code={ |
125 | | - \draw [dash pattern=on 3pt off 3pt,one-] (\tikzinputsegmentfirst) -- |
| 125 | + \draw [dash pattern=on 3pt off 3pt,#1-] (\tikzinputsegmentfirst) -| |
126 | 126 | ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$); |
127 | | - \draw [solid,-crow's foot] ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$) |
128 | | --- (\tikzinputsegmentlast); |
| 127 | + \draw [solid,-#2] ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$) |
| 128 | +|- (\tikzinputsegmentlast); |
129 | 129 | } |
130 | 130 | }, decorate |
131 | 131 | }, |
132 | | - optionalone to one/.style={ |
| 132 | + optionalv/.style n args={2}{ |
133 | 133 | decoration={show path construction, |
134 | 134 | lineto code={ |
135 | | - \draw [dash pattern=on 3pt off 3pt,one-] (\tikzinputsegmentfirst)-- |
| 135 | + \draw [dash pattern=on 3pt off 3pt,#1-] (\tikzinputsegmentfirst)|- |
136 | 136 | ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$); |
137 | | - \draw [solid,-one] ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$) |
138 | | - -- (\tikzinputsegmentlast); |
| 137 | + \draw [solid,-#2] ($(\tikzinputsegmentfirst)!0.5!(\tikzinputsegmentlast)$) |
| 138 | + -| (\tikzinputsegmentlast); |
139 | 139 | } |
140 | 140 | }, decorate |
| 141 | + }, |
| 142 | + optional one to many/.style={ |
| 143 | + optional={{one}{crow's foot}} |
| 144 | + }, |
| 145 | + optional one to one/.style={ |
| 146 | + optional={{one}{one}} |
| 147 | + }, |
| 148 | + optional v one to many/.style={ |
| 149 | + optional v={{one}{crow's foot}} |
| 150 | + }, |
| 151 | + optional v one to one/.style={ |
| 152 | + optional v={{one}{one}} |
141 | 153 | } |
142 | 154 | } |
143 | 155 |
|
|
216 | 228 | \draw [one to many] (bookings) -- (tickets); |
217 | 229 | \draw [one to many] (tickets) -- (segments); |
218 | 230 | \draw [one to many] (flights) -- (segments); |
219 | | - \draw [optional one to many] (routes) -- (flights); |
| 231 | + \draw [optionalvone to many] (routes) -- (flights); |
220 | 232 | \draw [optional one to one] (segments) -- (boarding-passes); |
221 | | - \draw [optional one to many] (airplanes-data) -- (flights.east); |
222 | | - \draw [optional one to many] (airplanes-data) -- (seats); |
223 | | - \draw [optional one to many] ([yshift=-2ex]airports-data.west) -- ([yshift=-2ex]routes.east); |
224 | | - \draw [optional one to many] ([yshift=+2ex]airports-data.west) -- ([yshift=+2ex]routes.east); |
| 233 | + \draw [optional one to many] (airplanes-data.west) -- ([yshift=-3ex]routes.east); |
| 234 | + \draw [optionalvone to many] (airplanes-data) -- (seats.north); |
| 235 | + \draw [optional one to many] (airports-data.west) -- (routes.east); |
| 236 | + \draw [optional one to many] ([yshift=+3ex]airports-data.west) -- ([yshift=+3ex]routes.east); |
225 | 237 |
|
226 | 238 | \node (timetable-label) [below = 2ex of flights, align=center, font=\sffamily\footnotesize, outer sep=-1ex] |
227 | 239 | {\textbf{Timetable}\strut\\ Расписание}; |
|