2012-03-11 9 views
1

私は、クラスプロジェクトのデータベースをモデル化するためにUMLを学んでいます。基本的に、データベースはソーシャルネットワーク向けです。テーブルは、ユーザー、フレンド、プロファイル、ステータス、wall_posts、およびコメントです。私は正確な関係を釘付けにするいくつかのトラブルを抱えています。UMLを使用したデータベースのモデリング:リレーションシップ

一見、すべてのテーブルは(多様性が異なる)構成関係を持つように見えます。 wall_posts(1-0 .. *)、wall_postにはコメント(1-0)があります。ユーザーはプロフィール(1-1)を持ち、ユーザーは友人(1-0 .. *)、wall_posts 。*)。ユーザーが削除された場合、エフェクトはカスケードし、そのユーザーIDを持つレコードを削除する必要があります。ユーザーテーブルには、uidの名前(wall_postsテーブルにはレプリケートされていない)のような情報があります。そのため、メッセージレコードのようなものは削除する必要があります。

私のロジックに欠陥がありますか?

答えて

2

a user "has" friends(1-0..*)に欠陥がある部分。これらすべての友人が一人のユーザに排他的ではないので、ユーザテーブル自体(またはUML表記0..*-0..*)間N-Mなければならない

。誰もが(うまくいけば)多くの友達を持つことができます。ユーザーテーブルへの2つの(別個の)外部キーと場合によっては関係を記述する追加の属性を保持するfriendshipテーブルによって実装できます。

+0

友人のテーブルの実装方法は基本的に友人テーブルです(名前を変更する必要があります)。これには2つの外部キー(f_uid、with_uid)とsince_date属性が含まれています。この場合、ユーザーとの関係タイプは何ですか?それはまだ構図ですか? (2-n?) – Ch0b0

+0

@ Ch0b0: 'user'と' friendship'の関係は '1-0 .. *'となります。 *これらの接続の2つ* –

関連する問題