web-dev-qa-db-ja.com

これが非識別または識別関係の例であるかどうか知っていますか?

MySQLWorkbenchを使用して図をモデル化しています。しかし、特定と非特定の関係についていくつかの疑問を持つイム。プロジェクトのすべての関係が特定されているようです。

たとえば、会議には、その会議を作成したユーザーが1人います。したがって、会議テーブルには列「user_id」があり、会議を作成したユーザーのIDを格納します。ユーザーは多数の会議を作成できるため、ユーザーと会議テーブルの間には1対多の関係があります。しかし、それが識別関係か非識別関係かはわかりません。多分それは識別表の関係で、会議テーブル、多サイドのsabeには列user_idがあるので、それが識別しているのですか?しかし、ほとんどすべての関係が識別しているようです。

たとえば、会議には多くのチケットタイプがあるため、会議とチケットタイプテーブルの間には1対多の関係があります。チケットタイプにも列「conference_id」があるので、それも識別しますか?

また、会議は多くの登録を持つことができるため、会議と登録の間に1対多があるため、登録テーブルに「conference_id」列があります。それも識別しますか?

また、登録には多くの参加者を関連付けることができるため、登録と参加者テーブルの間に1対多があるため、参加者テーブルには列「registration_id」があり、これも識別権ですか?

2
Carrick

会議の識別にuser_idは必要ですか? user_idがない場合でも、ある会議を別の会議から明確に識別することができますか?

会議センターのテーブルに参加するvenue_idとvenue_dateが会議を一意に識別することを想像しているので、私の推測はイエスでしょう。その場合、conferencesテーブルとusersテーブルの間に識別できない関係があります。

例:野球DBで、チーム/プレーヤーは識別または非識別の関係ですか?チームはプレーヤーを識別するために必要なコンポーネントのように思われるかもしれませんが、少し考えてみてください。プレーヤーがシーズンの間にフリーエージェントである場合はどうでしょうか。それから彼はしばらくの間チームに属さないかもしれません。

これは完全に熟考するのに少し時間がかかります。次の説明を試してください。

から- https://stackoverflow.com/questions/762937/whats-the-difference-between-identifying-and-non-identifying-relationships

識別関係とは、子テーブルの行の存在が親テーブルの行に依存する場合です。正式には、これを行う「正しい」方法は、外部キーを子の主キーの一部にすることです。しかし、論理的な関係は、子供は親なしでは存在できないということです。

そして

非識別関係は、親の主キー属性が子の主キー属性にならない場合です

ここに私が好きな別の例があります: https://www.datanamic.com/support/relationshiptypes.html

0
Victor Di Leo