Мне нравится создавать основанное на базе данных веб-приложение (PHP с mySQL), которое отображает собранные работы (источники) нескольких древних и средневековых философов. Источники должны быть доступны на их оригинальных языках, в основном на древнегреческом, латинском и арабском языках. Пользователи должны иметь возможность переводить и комментировать любой контент источников.
Авторские i
собранные работы хранятся в scrAuthori
:
PK
|scrAuthoriId|booktitle|page|line|position|word
|1 |bookA |1 |1 |1 |word1
|2 |bookA |1 |1 |2 |word2
...
|342 |bookB |234 |3 |11 |word3453
Авторские i
собранные работы имеют различные виды контента, которые представляют интерес: слова, выражения, охватывающие более двух слов, предложение, предложения, абзац, абзацы и т. Д. Пользователи могут определять, какой контент представляет интерес (т.е. BookA, страница 1, строка 3 до BookA, страница 3, строка 5). Будет переводить контент и добавлять комментарии к нему.
Содержимое определяется в authoriContents
:
PK FK1 FK2
|authoriContentsId|scrAuthoriId1|scrAuthoriId2|
|1 |1 |100
|231 |234 |1029
Перевод в translationsAuthori
:
PK FK
|translationAuthorIId|authorIContentsId|translation|
|1 |3 |uvw
|2 |3 |xyz
|2 |45 |abc
Соотношение между комментариями и контентом должно быть много ко многим: пользовательский комментарий относится к двум или более контентам, а контент может содержать более одного комментария.
authorIContents_author1Comments
FK FK
|authoriContentsId|authoriCommentsId
|1 |3
|4 |3
|231 |45
authoriComments
PK FK
|authoriCommentsId |comment
|3 |comment on content 1 and 4
|45 |comment on content 231
Поскольку это мое первое приложение для работы с базами данных, я не уверен, выполнимо ли это решение. Является ли плохое решение в свете производительности хранить собранные произведения слово в слово? Каждый scrAuthori
, i = 1, 2, ... 10
будет иметь до миллиона строк. После установки строки scrAuthori
не изменятся. Есть ли лучший подход к проблеме отслеживания аннотаций к разным видам контента?