MySQLWorkbenchを使用して図をモデル化しています。しかし、特定と非特定の関係についていくつかの疑問を持つイム。プロジェクトのすべての関係が特定されているようです。
たとえば、会議には、その会議を作成したユーザーが1人います。したがって、会議テーブルには列「user_id」があり、会議を作成したユーザーのIDを格納します。ユーザーは多数の会議を作成できるため、ユーザーと会議テーブルの間には1対多の関係があります。しかし、それが識別関係か非識別関係かはわかりません。多分それは識別表の関係で、会議テーブル、多サイドのsabeには列user_idがあるので、それが識別しているのですか?しかし、ほとんどすべての関係が識別しているようです。
たとえば、会議には多くのチケットタイプがあるため、会議とチケットタイプテーブルの間には1対多の関係があります。チケットタイプにも列「conference_id」があるので、それも識別しますか?
また、会議は多くの登録を持つことができるため、会議と登録の間に1対多があるため、登録テーブルに「conference_id」列があります。それも識別しますか?
また、登録には多くの参加者を関連付けることができるため、登録と参加者テーブルの間に1対多があるため、参加者テーブルには列「registration_id」があり、これも識別権ですか?
会議の識別にuser_idは必要ですか? user_idがない場合でも、ある会議を別の会議から明確に識別することができますか?
会議センターのテーブルに参加するvenue_idとvenue_dateが会議を一意に識別することを想像しているので、私の推測はイエスでしょう。その場合、conferencesテーブルとusersテーブルの間に識別できない関係があります。
例:野球DBで、チーム/プレーヤーは識別または非識別の関係ですか?チームはプレーヤーを識別するために必要なコンポーネントのように思われるかもしれませんが、少し考えてみてください。プレーヤーがシーズンの間にフリーエージェントである場合はどうでしょうか。それから彼はしばらくの間チームに属さないかもしれません。
これは完全に熟考するのに少し時間がかかります。次の説明を試してください。
識別関係とは、子テーブルの行の存在が親テーブルの行に依存する場合です。正式には、これを行う「正しい」方法は、外部キーを子の主キーの一部にすることです。しかし、論理的な関係は、子供は親なしでは存在できないということです。
そして
非識別関係は、親の主キー属性が子の主キー属性にならない場合です
ここに私が好きな別の例があります: https://www.datanamic.com/support/relationshiptypes.html