タグ スキーマに関してはかなりの議論がありますが、そのほとんどがブックマークや写真などの単一のコンテンツ タイプに焦点を当てていることに気付きました。
マルチテナント ビジネス アプリの複数の機能でタグを使用することに関心があります。タグがフォーム フィールド、ドキュメント、写真、構成設定などに関連している場合があります。
コンテンツ タイプごとにリンク テーブルを作成して複雑にするのではなく、これらのさまざまなニーズに合わせてスケーリングできる小さなテーブル セットを設計したいと考えています。
tags {
tagsID
tagName
}
tagChildren {
childID
childValue
}
tagType {
typeID
typeName
}
entity {
entityID
entityName
...
}
tagMap {
mapID
tagsID (FK)
childID (FK)
typeID (FK)
entityID (FK)
}
tagMap を使用して、これらのアイテムをいくつでも接続できますが、少なくともタグと tagType を接続します。たとえば、タグをドロップダウン フィールド タイプに関連付けることができます。これは、レジストリ タイプ、子値を持つレジストリ キーであり、エンティティに関連付けられている場合があります。複数レベルの親子関係を可能にするために、タグの子は別のタグである場合があります。
多くの機能が小さなテーブルセットに依存するようになるという点で、分散にはリスクがあります。
同様の決定に異議を唱えられた場合、または役立つアイデアがある場合は、考え、アプローチ、およびパフォーマンスが流通リスクにどのように関連しているかを共有してください.
ありがとう!