- 子モデルの埋め込み: マルチレベル関係データを処理する一つの方法は、子モデルを親モデルに埋め込むことです。例えば、ブログ投稿とコメントの関係を考えてみましょう。ブログ投稿モデルにコメントを埋め込むことで、ブログ投稿とコメントの関連性を簡単に表現できます。
// ブログ投稿モデル
module.exports = {
attributes: {
title: {
type: 'string',
required: true,
},
content: {
type: 'text',
required: true,
},
comments: {
collection: 'comment',
via: 'post',
},
},
};
// コメントモデル
module.exports = {
attributes: {
text: {
type: 'string',
required: true,
},
post: {
model: 'post',
},
},
};
- 親子関係の設定: 別の方法として、親子関係を設定することがあります。この場合、親モデルと子モデルを別々に定義し、関連性を設定します。例えば、ブログ投稿とカテゴリの関係を考えてみましょう。
// ブログ投稿モデル
module.exports = {
attributes: {
title: {
type: 'string',
required: true,
},
content: {
type: 'text',
required: true,
},
category: {
model: 'category',
},
},
};
// カテゴリモデル
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
},
posts: {
collection: 'post',
via: 'category',
},
},
};
これらはStrapiでマルチレベル関係データを処理するためのいくつかの一般的な方法です。どの方法が最適かは、具体的な要件やデータモデルによって異なります。これらのコード例は、Strapiにおけるマルチレベル関係データの処理を開始するための参考となるでしょう。