|
|
@@ -224,13 +224,13 @@
|
|
|
</ul>
|
|
|
<p><strong>Примеры</strong></p>
|
|
|
<p>Объявление связи <code>belongsTo</code></p>
|
|
|
-<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'user'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">role:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">BELONGS_TO</span><span class="hl-1">, </span><span class="hl-5">// текущая модель ссылается на целевую</span><br/><span class="hl-1"> </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">'role'</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">'roleId'</span><span class="hl-1">, </span><span class="hl-5">// внешний ключ (необязательно)</span><br/><span class="hl-1"> </span><span class="hl-5">// если не указывать "foreignKey", то свойство внешнего</span><br/><span class="hl-1"> </span><span class="hl-5">// ключа формируется согласно названию связи</span><br/><span class="hl-1"> </span><span class="hl-5">// с добавлением постфикса "Id"</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
|
+<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'user'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">role:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">BELONGS_TO</span><span class="hl-1">, </span><span class="hl-5">// текущая модель ссылается на целевую</span><br/><span class="hl-1"> </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">'role'</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">'roleId'</span><span class="hl-1">, </span><span class="hl-5">// внешний ключ (необязательно)</span><br/><span class="hl-1"> </span><span class="hl-5">// если "foreignKey" не указан, то свойство внешнего</span><br/><span class="hl-1"> </span><span class="hl-5">// ключа формируется согласно названию связи</span><br/><span class="hl-1"> </span><span class="hl-5">// с добавлением постфикса "Id"</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
|
</code><button>Copy</button></pre>
|
|
|
<p>Объявление связи <code>hasMany</code></p>
|
|
|
<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'role'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">users:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">HAS_MANY</span><span class="hl-1">, </span><span class="hl-5">// целевая модель ссылается на текущую</span><br/><span class="hl-1"> </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">'user'</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">'roleId'</span><span class="hl-1">, </span><span class="hl-5">// внешний ключ из целевой модели на текущую</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
|
</code><button>Copy</button></pre>
|
|
|
<p>Объявление связи <code>referencesMany</code></p>
|
|
|
-<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'article'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">categories:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">REFERENCES_MANY</span><span class="hl-1">, </span><span class="hl-5">// связь через массив идентификаторов</span><br/><span class="hl-1"> </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">'category'</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">'categoryIds'</span><span class="hl-1">, </span><span class="hl-5">// внешний ключ (необязательно)</span><br/><span class="hl-1"> </span><span class="hl-5">// если не указывать "foreignKey", то свойство внешнего</span><br/><span class="hl-1"> </span><span class="hl-5">// ключа формируется согласно названию связи</span><br/><span class="hl-1"> </span><span class="hl-5">// с добавлением постфикса "Ids"</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
|
+<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'article'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">categories:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">REFERENCES_MANY</span><span class="hl-1">, </span><span class="hl-5">// связь через массив идентификаторов</span><br/><span class="hl-1"> </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">'category'</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">'categoryIds'</span><span class="hl-1">, </span><span class="hl-5">// внешний ключ (необязательно)</span><br/><span class="hl-1"> </span><span class="hl-5">// если "foreignKey" не указан, то свойство внешнего</span><br/><span class="hl-1"> </span><span class="hl-5">// ключа формируется согласно названию связи</span><br/><span class="hl-1"> </span><span class="hl-5">// с добавлением постфикса "Ids"</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
|
</code><button>Copy</button></pre>
|
|
|
<p>Полиморфная версия <code>belongsTo</code></p>
|
|
|
<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'file'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">reference:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">BELONGS_TO</span><span class="hl-1">, </span><span class="hl-5">// текущая модель ссылается на целевую</span><br/><span class="hl-1"> </span><span class="hl-5">// полиморфный режим позволяет хранить название целевой модели</span><br/><span class="hl-1"> </span><span class="hl-5">// в свойстве-дискриминаторе, которое формируется согласно</span><br/><span class="hl-1"> </span><span class="hl-5">// названию связи с постфиксом "Type", и в данном случае</span><br/><span class="hl-1"> </span><span class="hl-5">// название целевой модели хранит "referenceType",</span><br/><span class="hl-1"> </span><span class="hl-5">// а идентификатор документа "referenceId"</span><br/><span class="hl-1"> </span><span class="hl-4">polymorphic:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|