72 похожих чатов

Ребята, у меня такой вопрос. Работаю над проектом где потребуется

мультиязычность организовывать для ключевых таблиц в бвзе данных.
У меня возникла идея.
Я хочу в самой таблице хранить битовое поле (число): где каждый бит будет означать некий язык, и соответственно проверять то для каких языков существуют данные для этой записи, а сами переводы текстов хранить в отдельной таблице, где: будет форейн кей на саму сущность, и ключ уникальный по language_code , entity_id
Как вам идея ? Как вы обычно организовываете мультиязычность ?

16 ответов

5 просмотров

Очень плохая идея

Организуется легко, связь один кол многим от каждой таблицы с атрибутами , требующими перевода, к таблице перевода, где pk состоит из полей pk основной таблицы плюс код языка

Я не дочитал, сорри. Идея ок, КРОМЕ битового поля наличия переводов. Это и нарушение 1НФ , и ещё и дублирование данных. Признак наличия перевода и так есть в таблице переводов, это поле не нужно

Серж-ИзТанзании Автор вопроса
Ilya Zviagin
Я не дочитал, сорри. Идея ок, КРОМЕ битового поля ...

в данном случае помоему можно пренебречь 1НФ, потому что это ж по сути кеш (условный), который будет заполняться один раз, при редактировании данных в админке. Вместо того чтобы делать постоянно запрос по связанной таблице. Своего рода такая денормализация данных

Серж ИзТанзании
в данном случае помоему можно пренебречь 1НФ, пото...

Ты в курсе, что ты никаким индексом это поле с битовой маской языков не покроешь? А там, в связанной таблице — пожалуйста, строй индексы, делай запросы...

Серж-ИзТанзании Автор вопроса
Ilya Zviagin
Ты в курсе, что ты никаким индексом это поле с бит...

гм, тему индексов пока не исследовал, надеялся что будет какой то воркэраунд

Серж ИзТанзании
гм, тему индексов пока не исследовал, надеялся что...

Не надейся. Нарушение 1НФ — нахер с пляжа, НОЛЬ индексов...

Серж ИзТанзании
гм, тему индексов пока не исследовал, надеялся что...

Почему и говорю всегда, нарушение 1НФ — страшнейшая ошибка в проектировании!

Ilya Zviagin
Ты в курсе, что ты никаким индексом это поле с бит...

Покроешь. В постгресе есть индэксы, которые покроют битовые маски.

Ilya Anfimov
Покроешь. В постгресе есть индэксы, которые покрою...

Да, да. Есть. И постгрес классный. И я тоже хочу жить как в сказке. Но...

если вам интересно, то можете посмотреть как это реализованно в ERP от oracle - OEBS. если в кратце, то там есть поле language

Серж ИзТанзании
в данном случае помоему можно пренебречь 1НФ, пото...

Этот по сути кэш тебе ничего не сможэт ускорить. Поскольку если тебе нужна строка — то всё равно обращать ся по индэксу во вторую таблицу. И правильный индэкс там будет (идтекста, язык) — и список доступных языков будет получаться index range scan этих нескольких записей на одной несчастной страницэ. К которой тебе всё равно обращаться. Зато геморроя и тормозов это можэт добавить. Геморроя — в рамках синхронизацыи, тормозов — поскольку любое добавление перевода будет блокировать запись в основной таблицэ/создавать новую версию этой записи.

Nikolay
если вам интересно, то можете посмотреть как это р...

Так это везде примерно так вот и реализовано.

Ilya Zviagin
Так это везде примерно так вот и реализовано.

Это да, если просто упомянуть ERP от Oracle, то на него можно найти ссылку, которую запостил выше. у них в доке все довольно хорошо расписанно

Похожие вопросы

Обсуждают сегодня

Только сейчас дошли руки до Orange pi 5. Это нормально что на нем YOLOv5s выдает 1 кадр раз в 2-3 секунды на CPU? Это без оптимизаций и прочих настроек, просто голый запуск че...
Denis
10
Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Всем привет! подскажите пожалуйста как можно увеличить качество фото?
Evgeniy
19
Как удалить health check в Consul? Казалось бы, это должно быть не сложно, но я не могу найти в документации ничего про это, только про добавление service с health check "в н...
Roman
2
Доброе утро. Подскажите, если если 4 корутины, внутри которых VideoCapture, то будут ли они работать асинхронно? Т.к. нагуглил, что Videocapture в моменте может быть открыт то...
Alexander👨‍💻
19
Гайз, а как отправлять с вейпора пуши на андроид? ) Меня вот осенило )))
Serg
11
Я пожалуй ещё раз брошу клич: кто-нибудь хочет в рабство в ОЭЗ Алабугу на позицию инженера CV? Работы много, задачи сложные, ЗП высокая. Я передам контакт напрямую в HR.
Maxim 👀 Osminin #Slowpoke3D
13
А как можно понять что пользовательская программа завершилась если она не вызывала сисколл exit?
One
4
I have this grayscale image in opencv I want to change gray quadrilaterals to black like others It means i want to change gray color of specific color to black How can i do th...
@. .@
7
Карта сайта