Ответы пользователя по тегу Проектирование баз данных
  • Как организовать базу данных для мультиязычной онлайн картотеки?

    @acwartz
    Тут должна быть ваша реклама.
    Вынеси локализацию параграфов в отдельную таблицу.
    Таблица переводов paragraphs_locale:
    id
    uuid
    manualId = manuals.Id
    authorId = Authors.id
    changeAuthorId = Authors.id
    parentParagraphId = paragraphs_locale.Id - будет NULL у параграфов от имени автора по authorId может даже в нескольких локалях т.к. автор же может знать несколько языков и написать переводы?
    lang
    content
    revision - просто счетчик, увеличивающийся с вверх с каждым изменением.
    created
    updated

    Я вынес параграфы в отдельную таблицу paragraphs_locale т.к. переводов параграфа может быть много и делать их могут разные люди, включая самого автора. Другие люди всегда берут за основу имеющийся параграф, по этому есть parentParagraphId и lang где lang - целевой язык который хотят добавить. Здесь же разделяется понятие автора. Автором может быть один человек но вносить изменения могут и другие, потому есть changeAuthorId чтобы указать на того кто последним внес изменения.
    Ответ написан
    Комментировать