質問

オンラインブログウェブサイトを作成しています。各ブログ投稿について、ユーザーが自分のカテゴリを作成/編集/削除できるようにして、投稿を分類できるようにします。

一般的に、ユーザー生成カテゴリの優れたデータベース設計と考えられているもの

これは、私の提案するテーブル設計です。 (このタイプのデータベースには名前がありますか?)

USER_TABLE
user_id(pk)、user_name

CATEGORY_TABLE
category_id(pk)、category_name

USER_CATEGORIES
user_id(fk)、category_id(fk)

手伝ってくれてありがとう。これに関する投稿はどこかにあると確信していますが、見つけることができませんでした。これがだまされている場合はお知らせください。この質問を削除します。

役に立ちましたか?

解決

これは多対多の関係です。これにより、各ユーザーが潜在的に多くの異なるカテゴリを持ち、各カテゴリーが潜在的に多くの異なるユーザーを持つことができます。これは、あなたがやろうとしていることの有用なモデルのようです。

他のヒント

スキーマは適切だと思います。重複を避けるために1つのテーブルにカテゴリラベルを保持し、ユーザーにIDを割り当てるだけです。

やろうとしているのが<!> quot; private <!> quot;各ユーザーのカテゴリの場合、これで問題ありません。 一方、カテゴリがパブリック(stackoverflowのタグのような)である場合、user <!> lt;-<!> gt; category関係を保存せず、代わりにフィールドuse_counterをカテゴリテーブルに追加し、トリガーを使用して、カテゴリが使用されている場合(ブログエントリがカテゴリ化されている場合)にインクリメントするか、<!> quot; freed <!> quotの場合にデクリメントします。 (ブログエントリが削除される/カテゴリが削除される)。 use_counterが0に達したら、カテゴリを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top