1

私のシナリオは次のとおりです。

  • タグ付けできるオブジェクト (メッセージ) がいくつかあります
  • だから私は Tag エンティティと多対多の関係を持っています
  • 上記は完了し、機能しています
  • 今、タグ付けするとき、新しいタグが存在しない場合にのみ保存した​​いと思います(存在はタグのタイトルでチェックされます)
  • タグが既に存在する場合は、それを認識して新しいオブジェクトではなくオブジェクトにアタッチしたい

それを行う最も簡単でクリーンな方法は何ですか?

ところで、いくつかの理由で、タグ エンティティに人工的な主キー (数値 ID) を使用したいと考えています。

ありがとう!

4

2 に答える 2

1

ビジネスクラスで表現し、NHibernate でマッピングできる多対多の関係があります。多対多の関係を解決するリンク テーブルの構造により、オブジェクトが同じタグに複数回リンクされることが防止されます。

質問でルールを適用する唯一の方法は、コードを使用することです。一連のタスクは次のようになります。

  1. ユーザーが入力したタグ リストを個々のタグに解析する
  2. タグをループ ...

    を。タグが存在する場合は、オブジェクトのタグ コレクションに追加します。

    b. それ以外の場合は、新しいタグを作成し、オブジェクトのタグ コレクションに追加します

  3. 持続オブジェクト

スペル ミス、大文字と小文字、および別の使用方法を考慮して、既存のタグを検索するロジックを追加する必要があります。たとえば、「ASPNET」、「ASP.NET」、「asp.net」など、同じことを意味するが同じ文字列ではないタグを使用したくない場合があります。タグ リストの品質は、既存のタグをチェックするコードの堅牢性に依存します。

于 2009-06-19T12:02:48.610 に答える