スレッドに基づいて、特定のトピックに関する社会的相互作用のための Web サイトを構築しています。Gmail を考えてください。公開のみです。ボキャブラリ、ブログ、ハウツー、ナレッジ ベースなどにもいくつかの静的情報があります。それは django+postgres です。
最も重要な要件の 1 つは、モデルの種類に関係なく、すべての情報に対する全文検索です。正確な検索フレーズがブログに表示され、ねじれた姉妹がメッセージに表示される場合、ブログ エントリのスニペットが検索結果の最初に表示され、その後にメッセージのスニペットが表示されます。したがって、すべてのテキストがインデックス化されたテーブルと、db 内の _any_other_table_ へのリンクが必要です。
私の最初のアイデアは、「緩い参照」を使用して別のモデルを作成することです。
class Content(models.Model):
obj_id= CharField() # An id of the object of a given model.
model= CharField(choices=("Message", "BlogEntry", "HowTo", "EntityProfile",))
content_type= CharField(choices=("subject", "body", "description", "tags",))
body= TextField()
しかし、それはちょっと間違っているように感じます...これは、インスタンスを作成して再リンクするときの参照の整合性に関する不必要な面倒を約束します.
質問は、django が提供するエレガントなソリューションはありますか? 問題を解決するための最も効率的なアーキテクチャは何でしょうか?
直接の回答ではなく、ヒントを求めています。
前もって感謝します!