Я пытаюсь найти разумную схему базы данных SQLite для следующей ситуации.Моделирование публикации с несколькими авторами, принадлежащими нескольким instutes в SQLite
У меня есть база данных, содержащая публикации. В каждой из этих публикаций есть ряд авторов, и каждый из этих авторов может принадлежать нескольким различным институтам. Возможно, однако, что несколько авторов разделяют институт. Например, в публикации есть авторы Энн, Берт и Карл. Anne принадлежит институтам A и B, Bert принадлежит B и C, а Carl принадлежит C, D и E.
Число авторов в публикации должно быть переменным, равно как и количество институтов любого конкретного автора может принадлежать к. Однако институты должны быть представлены только один раз.
Прямо сейчас, я имею в виду следующую схему:
create table publications (
id integer primary key autoincrement,
...
)
create table publication_institutes (
id integer primary key autoincrement,
publication_id integer references publications(id),
...
)
create table publication_authors (
id integer primary key autoincrement,
publication_id integer references publications(id),
...
)
create table publication_author_institute (
id integer primary key autoincrement,
institude_id integer references publication_institutes(id),
author_id integer references publication_authors(id)
)
Это кажется неоптимальным, хотя. publication_author_institute
больше не ссылается на идентификатор в publications
, но его явно не видно.
Есть ли ясное решение этой ситуации?
Заранее благодарен!
Вы хотите знать, к каким учреждениям принадлежит автор, или к которым он принадлежал при публикации конкретной публикации? –
Мне нужно знать, какие авторы принадлежат к определенной публикации, а также к тому институту, в котором они принадлежали при публикации этой публикации. Несколько авторов могут принадлежать одному и тому же институту для данной публикации. –