0
hereと同じデータモデルがあるとします。 3つの列を持つDBスキーマのタグ同義語
Table: Item
Columns: ItemID, Title, Content
Table: Tag
Columns: TagID, Title
Table: ItemTag
Columns: ItemID, TagID
あなたがstackoverflow
上にあるのと同様に、タグの同義語を持つようにしたい場合は
SQL
新しいアイテムを挿入するためのステートメントはどのように見えますか?新しい項目はすべてのシノニムまたは1つのメインタグのみで結ばれますか?これはシノニムであることをコード内で検出する必要がありますか?あなたはスムーズにを挿入するための推薦アプローチ
、は、タグ操作で検索とを削除しますか?
(3つの表に)残りを行います
Tag.TagID
とカスケード効果にのみ、単純なUPDATE
(1行)が必要になります二つのタグをマージするような簡単な操作1つはメイン同義語の名前を含む「同義語」列のタグ、またはそれが主要な同義語そのものの場合は「メイン」のタグです。 2つのテーブルを持つ方が良いですか? – xralf'ItemTag.TagID'は、'(TagID) 'が主キーである' SomeTable(TagID) 'に対する外部キーでなければなりません。しかし、あなたが(今)すべての同義語を特定することを希望する 'TagID'では、正しいのでしょうか?だから、私は別のテーブルを追加せずに方法を表示しません。 –
さて、私は参照してください。 2つのテーブルを使用すると、タグの挿入、削除、および検索の実装がより純粋になります。 – xralf