私のデータベースには、ユーザーが作成したテキスト「メモ」を添付したいカテゴリがいくつかあります。たとえば、 という名前の上位レベルのテーブルのエントリにはjobs
、ユーザーがそれについていくつかのメモを書いている場合がありますが、 の下位レベルのエントリもそうかもしれませんsub_projects
。job_notes
これらのメモはすべて同じ形式になるため、やのような一連のテーブルではなく、メモ テーブルを 1 つだけ持つことで物事を簡素化し、project_notes
複数の多対多の関係を使用して複数の一度に他のテーブル。
これが最初から大きな欠陥のあるアイデアではない場合 (そうである場合はお知らせください!)、これを行うための最良の方法は何かと考えています。私が見たように、私は2つの方法でそれを行うことができました:
job_notes_mapping
やなどの大きなカテゴリごとに多対多のジャンクション テーブルを用意project_notes_mapping
し、MtM 関係を個別に管理します。table_type
MtM リレーションシップがマッピングされるテーブルを指定する、列挙型または別のテーブルにリンクされた単一のジャンクション テーブルを用意します。+-------------+-------------+---------------+ | note_id | table_id | table_type_id | +-------------+-------------+---------------+ | 1 | 1 | jobs | | 2 | 2 | jobs | | 3 | 1 | project | | 4 | 2 | subproject | | ........... | ........... | ........ | +-------------+-------------+---------------+
これらのいずれかが完全に恐ろしいアイデアである場合は申し訳ありませんが、少なくとも概念的には興味深い質問かもしれないと思いました.