0

コメント、評価、タグなどのモジュールをエンティティに実装したいと思います。私が思ったのは:

コメントテーブル->comment_id、comment_text

entity1-> entity1_id、entity1_text

entity2-> entity2_id、entity2_text

entity1_comments-> entity1_id、comment_id

entity2_comments-> entity2_id、comment_id

...。

このアプローチは正しいですか?

4

2 に答える 2

1

それよりも簡単です。次のようなものが必要になります。

エンティティ: EntityID EntityText

コメント: CommentID AssocEntityID CommentText

AssocEntityID には、エンティティ テーブルの EntityID 列への外部キー リレーションがあります。

このソリューションでは、ID 1 のエンティティのすべてのコメントを取得するには、次のようにします。

SELECT CommentID, CommentText FROM Comments WHERE AssocEntityID = 1
于 2009-07-28T16:05:24.780 に答える
1

いいえ、コメントとエンティティの間の交差テーブルである entity_comments テーブルを 1 つだけ持つことをお勧めします。1 つのコメント テーブルにエンティティ 1 とエンティティ 2 の ID を個別の属性として含める必要があります。

したがって、次のようになります。

entitiy1 -> entity_comments <- comments_table
entitiy2 -> entity_comments <- comments_table

単純な選択は次のようになります。

select text
  from entity1
     , entity_comments
     , comments_table
  where entity1.id = entity_comments.entity1_id
    and entity_comments.comment_id = comments_table.id
于 2009-07-28T16:05:51.737 に答える