私は既存のwebappを持っており、ユーザーが既存のオブジェクトにタグを付けることができるようにタグ機能を追加したいと考えています。問題は、私は各オブジェクトにタグ列を追加する必要がありますか?または私はそれを正規化し、各オブジェクトがタグのコレクションを持つタグテーブルを使用する必要がありますか?タグクラウドを作成しやすくするために、よりクリーンで、より簡単にレポートを作成しやすくするために、私は後者に傾いています。しかし、私はこれが1000回解決されたことを知っているので、私は何かを見逃しているかどうか尋ねたいと思っていました。データベースのタグをモデル化するには?
9
A
答えて
6
オブジェクトに複数のタグを関連付ける必要があるユーザーを予測していますか?
でない場合は、OBJECTテーブルにTAG_ID fkを追加します。そうしないと、正しく多対多の関係をモデル化するために、合計で3つのテーブルを必要とするだろう:
OBJECT
- OBJECT_ID(PK)
OBJECT_TAG_XREF
- OBJECT_ID (pk、fk to OBJECT)
- TAG_ID(pk、fk to TAG)
タグ
- TAG_ID(PK)
4
はい、正規化する必要があります。 'タグ列'は、レコードごとに1つのタグのみをサポートするか、または厄介な検索パフォーマンスを持つことになります。
2
間違いなく正規化してください。タグのテーブル、既存のオブジェクトのテーブル、およびそれらの間のリンクテーブル。
関連する問題
- 1. データベースをモデル化する方法は?
- 2. MongoDBを使ってツリーベースのデータベースをモデル化するには?
- 3. データベースの関係をモデル化するには
- 4. フォローアップ:データベース内のアイテムの割引をモデル化する方法は?
- 5. データベースのアイテムの割引をモデル化する方法は?
- 6. csvの列をモデル化するには?
- 7. テキストをタグにカプセル化するには?
- 8. selectタグに別のモデルが属するモデルを入れよう
- 9. Firebaseデータベースのイベントカレンダーをモデル化する方法
- 10. cでデータベースの外部キーをモデル化する
- 11. コーディングインタビュー:OOデモをモデル化するには?
- 12. ReactiveKitでアクションをモデル化するには?
- 13. DjangoでTimeFieldをモデル化するには?
- 14. RAIIでソケットをモデル化するには
- 15. スパークで木をモデル化するには?
- 16. Rails 3.人をモデル化するには?
- 17. one-to-manyをモデル化するには?
- 18. リストデータベースをモデル化するには?
- 19. Zend、l18nで多言語データベースをモデル化する方法mysql?
- 20. データベース設計:生データを調査して既存のデータベースにモデル化する方法は?
- 21. 変化の傾向をモデル化するには?
- 22. データベースの抽象基本クラスとサブクラスをモデル化します
- 23. JSPタグをデータベースに格納する
- 24. dexmlモデルの同じタグにタグの値と属性を追加
- 25. Odoo 10のモデルに「タグ」を追加
- 26. EF4モデルとMVCモデルとビューモデル...モデル化するかどうかは?
- 27. Django - モデルをMySQLデータベースに移行する
- 28. モデルにDjango GeoIPデータベースを使用する
- 29. 同じスキーマ内の異なるデータベースに属するテーブルをモデル化することは可能ですか?
- 30. このデータベース関係をどのようにモデル化しますか?
どのようにこの変更は、ユーザーにタグを結びつけることでしょうか? OBJECT_IDはUSER_IDになりますか? –
@ JuniperAsh: 'OBJECT_TAG_XREF'に' user_id'カラムを追加する必要があります。他の2つのカラムと同じように、プライマリキーとユーザテーブルの外部キーです。 –
もっと意味をなさない!ありがとうございました! –