データベースモデル
基本的にmany-to-many
が必要です 1人の著者が多くの出版物を書くことができ、1つの出版物が複数の著者によって書かれる可能性があるため、著者と出版物の関係。
これには、3つのテーブルが必要です。
- 作成者-すべての作成者に関する一般情報(publications_idなし)
- パブリケーション-すべてのパブリケーションに関する一般情報(author_idなし)
- AuthorPublication-列
author_id
およびpublication_id
テーブルへの参照ですAuthor
およびPublication
。
このように、特定の著者を出版物に拘束することはありませんが、より多くの著者を含めることができ、その逆も同様です。
追記
特定の出版物における著者の役割を区別したい場合は、id_role
のような列を追加することもできます。 これは、作成者のすべての可能な役割を示すディクショナリテーブルへの参照になります。このようにして、主要な著者、共著者などの間で異なる可能性があります。このように、本の翻訳を処理する人々に関する情報を保存することもできますが、おそらくAuthor
の名前を変更する必要があります。 あまり具体的ではありません。
出現順序
AuthorPublication
に列を追加することで、作成者の正しい順序を確認できます。 Publication
ごとに個別にインクリメントします 。このようにして、必要に応じて順序を保持することができます。