3

ブログにコメントテーブルがあります。

comment
- id (PK)
- post_id (FK)
- user_id (FK)
- comment

3つのテーブルに分割して、このようにする必要がありますか?

comment
- id (PK)
- comment

user_comment
- comment_id (PK, FK)
- user_id (PK, FK)

post_comment
- post_id (PK, FK)
- comment_id (PK, FK)

これはより良いデザインでしょうか?他の提案は大歓迎です。

4

3 に答える 3

4

オリジナルのデザインは完璧です。実際に何が起こっているかをモデル化します。

また、スキーマの肥大化を避けるのも良いことです。

于 2012-09-08T02:17:54.017 に答える
2

最初のデザインの方がはるかに優れていると思います。そのテーブルを分割しても、私が知る限り、価値はありません。DB エンジンは、すべてのクエリに対して 1 つまたは 2 つの余分な結合を強制的に使用するだけです。

パフォーマンスが気になる場合は、コメントテーブルにインデックスを作成して、ユーザーごと、投稿ごとに効率的にコメントを選択できるようにすることができます。

于 2012-09-08T02:18:16.903 に答える
0
create table photo_comments(
    commentID int not null AUTO_INCREMENT PRIMARY KEY,
    userID int not null,
    photoId int not null,
    comment_data varchar(200)
 )

これ使えませんでしたか?

于 2015-07-09T09:17:04.123 に答える