0

私が設計しているタグ駆動型ソフトウェアのアーキテクチャを考え出すのに少し問題があります。

私がやりたいことは、所有者や他のエンティティに好まれるプレーンテキストをデータベースに保存することです。プレーン テキストは、Twitter のハッシュタグと同じようにタグで満たされ、検索/インデックス可能である必要があります。これはアプリケーション側で行うことができ、その結果、ビジネス インテリジェンスのために処理する必要のある小さなデータの塊が大量に発生します。

プレーンテキストを準備する人は誰もいません。一貫性がなく、非同期で実行できる分析についてのみです。

Twitter がいくつかのデータベースを使用していることは知っています。つぶやきには Gizzard と Cassandra、関係には FlockDb です。

関係を築くためにハイブリッドを使う気はありませんし、次のソーシャルネットワークを構築したくもありません. 私がする必要があるのは、他のエンティティに関連するすべてのタグの分析です。

ハッシュ タグの問題を解決するにはどうすればよいですか、またはテキストを処理して機能させるにはどうすればよいですか?

私は本当に解決策だけでなく、素晴らしい解決策を探しています。SQL のスキーマを作成する方法をよく知っています。

そのデータベースのジャングルを助けてくれてありがとう。

4

1 に答える 1

1

データベースでタグを表すかなり標準的な方法を次に示します。

ここに画像の説明を入力

アプリケーションは RAW_TEXT を解析し、識別された各タグが既に TAG にあるかどうかをチェックし、そうでない場合はそこに挿入します。次に、TAG_POST に挿入することで、投稿から抽出されたタグに投稿を関連付けるだけです。

TAG_POST の複合主キーのフィールドの順序に注意してください。先頭に TAG_ID があると、特定のタグの投稿を効率的に検索できます。特定の投稿のタグを取得する場合は、順序を反転します。両方が必要な場合は、PK とは逆の順序で複合インデックスを作成します。

DBMS がクラスタリングをサポートしている場合は、TAG_POST が適しています。


DBMS が最先端のインデックス圧縮 (Oracle) をサポートしている場合は、単純に次のようにすることを検討してください。

ここに画像の説明を入力

圧縮されたインデックスは、同じ TAG_NAME の多くの繰り返しを効率的に保存するため、スペースを節約するためだけに別のテーブルに「外部委託」する必要はありません。

于 2013-04-10T11:11:42.653 に答える