問題タブ [tagging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - タグまたはタグ付けに推奨される SQL データベース設計
タグ付けを実装する方法をいくつか聞いたことがあります。TagID と ItemID の間のマッピング テーブルを使用する (私には理にかなっていますが、スケーリングしますか?)、固定数の可能な TagID 列を ItemID に追加する (悪い考えのように思えます)、コンマで区切られたテキスト列にタグを保持する (サウンドクレイジーですが、うまくいく可能性があります)。誰かがスパース行列を推奨しているとさえ聞いたことがありますが、タグ名はどのように適切に成長するのでしょうか?
タグのベスト プラクティスを見逃していませんか?
sql - SQL 多対多マッチング
ウェブサイトのタグ付けシステムを実装しています。オブジェクトごとに複数のタグがあり、タグごとに複数のオブジェクトがあります。これは、レコードごとに 2 つの値を持つテーブルを維持することによって実現されます。1 つはオブジェクトの ID とタグです。
特定のタグのセットに一致するオブジェクトを見つけるためのクエリを作成しようとしています。次のデータがあるとします ([オブジェクト] -> [タグ]* 形式)
(赤) を合わせたい場合は、リンゴと消防車を入手する必要があります。(果物、食べ物) を一致させたい場合は、(リンゴ、バナナ) を取得する必要があります。
やりたいことを実行する SQL クエリを作成するにはどうすればよいですか?
@ジェレミー・ルーテン、
ご回答有難うございます。使用された表記は、いくつかのサンプル データを提供するために使用されました。私のデータベースには、レコードごとに 1 つのオブジェクト ID と 1 つのタグを持つテーブルがあります。
第二に、私の問題は、すべてのタグに一致するすべてのオブジェクトを取得する必要があることです。OR を AND に置き換えると、次のようになります。
実行しても結果は得られません。
sql - タグ付けのためのデータベース設計
次のタグ付け機能をサポートするデータベースをどのように設計しますか。
- アイテムには多数のタグを付けることができます
- 特定のタグセットでタグ付けされたすべてのアイテムの検索は高速である必要があります(アイテムにはALLタグが必要であるため、OR検索ではなくAND検索です)
- アイテムの作成/書き込みは、迅速な検索/読み取りを可能にするために遅くなる可能性があります
理想的には、(少なくとも)n個の指定されたタグのセットでタグ付けされたすべてのアイテムのルックアップは、単一のSQLステートメントを使用して実行する必要があります。検索するタグの数とアイテムのタグの数は不明であり、高い可能性があるため、JOINを使用することは実用的ではありません。
何か案は?
これまでのすべての回答に感謝します。
しかし、私が間違っていなければ、与えられた答えはタグのOR検索を行う方法を示しています。(n個のタグが1つ以上あるすべてのアイテムを選択します)。効率的なAND検索を探しています。(すべてのn個のタグを持つすべてのアイテムを選択します-そしておそらくそれ以上。)
python - Djangoの和集合と交差
私の質問をするためだけの単純なモデル。
タグを使用して2つの異なる方法でブログをクエリするにはどうすればよいでしょうか。
- 「tag1」または「tag2」でタグ付けされたブログエントリ:
Blog.objects.filter(tags_in=[1,2]).distinct()
- 「tag1」と「tag2」でタグ付けされたブログオブジェクト:?
- 正確に「tag1」と「tag2」でタグ付けされ、他には何もないブログオブジェクト:??
タグとブログは例として使用されています。
tags - タグの階層と取り扱い
これは、一般的なタグ付けアイテムに適用される実際の問題です (はい、これは StackOverflow にも適用されます。いいえ、StackOverflow に関する問題ではありません)。
タグ付けの問題全体は、アイテムが何であれ (ジョーク、ブログ投稿、質問など)、類似のアイテムをクラスター化するのに役立ちます。ただし、(通常ではありますが厳密ではありませんが) タグの階層が存在します。つまり、一部のタグは他のタグも暗示します。おなじみの例を使用すると、「c#」so タグは「.net」も意味します。別の例として、ジョーク データベースでは、"blondes" タグは、"irish"、"belge"、"canadian" などと同様に、ジョークの出身国に応じて "derisive" タグを意味します。
プロジェクトでこれをどのように処理しましたか? 2つの別々のケースで使用した2つの異なる方法(実際には同じメカニズムですが、2つの異なる環境で実装されています)について説明する回答を提供しますが、同様のメカニズムだけでなく、階層の問題に関するあなたの意見にも興味があります.
mysql - 多対多の関係を持つMySQLの制限
タグを実装するためのスキーマが与えられた
ITEM ItemId、ItemContent
TAG TagId、TagName
ITEM_TAG ItemId、TagId
タグで選択するときに返されるアイテムの数を制限するための最良の方法は何ですか?
もちろん、すべてを元に戻す最も簡単な方法ですが、limit句を使用すると、タグごとにすべてのアイテムの複製が取得され、LIMITの行数にカウントされるため、問題が発生します。
sql - タグ付けのための合意された理想的なスキーマはありますか
私は写真の Web サイトを持っていますが、元のカテゴリのバケット化が失敗し始めているため、タグをサポートしたいと考えています (一部の写真は家族と休暇、または学校と友人です)。合意されたタグ付けデータベース スキーマはありますか?
アルバムの一部としての写真の保持を引き続きサポートしたいと考えています。
現在、いくつかのテーブルがあります。
写真
- 写真付き身分証明書
- 写真アルバムID
- キャプション
- 日にち
フォトアルバム
- アルバムID
- アルバム名
- アルバムの日付
performance - Web 2.0 サイトで、新しく追加されたタグが表示され、検索用にインデックス化されるまでにかかる時間 (秒) は?
私はタグ付け機能を備えた Web 2.0 サイトを構築しており、システムが a) 特定のレコードに新しいタグを表示し、b) 検索用にタグをインデックス化するのにかかる時間 (秒) を、経験のある人から知りたいと考えていました。 . たとえば、新しく追加されたタグは 1 秒で検索できるようになる必要がありますが、ユーザーの画面には 0.1 秒で表示される必要がありますか?
python - CouchDB を使用して「タグ付け」サポートを構築する方法は?
次のビュー関数を使用して、データベース内のすべてのアイテムを反復処理しています (タグを見つけるため) が、データセットが大きい場合、パフォーマンスが非常に悪いと思います。他のアプローチはありますか?
tags - ユーザーの最もアクティブなセクションをどのように特定しますか?
Web サイトでは、すべてのものがスタッフによって割り当てられたキーワードでタグ付けされます (その性質上、コミュニティ主導のサイトではありません)。ユーザーが最もアクティブなタグ (またはユーザーが最も頻繁に閲覧するタグ) を特定できます。ただし、リストの選択方法がわかりません。いくつかのオプションが表示されますが、私には適切ではないようです。
- 上位 n 個 (閲覧タグが n 個未満の場合は m < n 個) のタグを取得します。
- 上位 n 個のタグを取得します。ここで、n は表示されたタグの合計のパーセンテージです
- n と m は、表示されたタグの総数とページ ビューの総数のパーセンテージです。
- ビューに関係なく、すべてのタグを取得します
目標は、コンテンツに割り当てられたタグに関して、ユーザーにとって最も興味深いものを特定し、ユーザーが興味を持つ可能性のある他のものを表示することです。