powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Храниение названий признаков на разных языках
12 сообщений из 12, страница 1 из 1
Храниение названий признаков на разных языках
    #38951704
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока идея такая - код признака и код языка - PK. Поимеем соответственно кластерный индекс.
Или PK суррогатный, а код признака и код языка - составной уникальный индекс.
А суть задачи - есть некотрое устройство, которое в текстовом виде присылает название и значение признака (по другому не умеет)
название приходит на тарабарском языке. Идея - класть это все базу, привлечь переводчика и конечному пользователю показывать отчет на его любимом языке (искать по названию признака) и возвращать нужное
Что посоветует почтенная публика?
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951718
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классически - признаки отдельная таблица, названия - отдельная.
Признаки:
AttrId int - PK
AttrValue nvarchar(100)

Названия признаков:
AttrLangId int - PK
AttrId int - FK
LangId int - FK - соответственно требуется еще одна таблица языков.
AttrName nvarchar(100)

Суть - атрибуты существуют сами по себе, независимо от языка, а их представление для разных языков различается.
При построении отчета соответственно нужно указывать язык и отображать название атрибута в нужно языке.
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951732
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenКлассически - признаки отдельная таблица, названия - отдельная.
Признаки:
AttrId int - PK
AttrValue nvarchar(100)

Названия признаков:
AttrLangId int - PK
AttrId int - FK
LangId int - FK - соответственно требуется еще одна таблица языков.
AttrName nvarchar(100)

Суть - атрибуты существуют сами по себе, независимо от языка, а их представление для разных языков различается.
При построении отчета соответственно нужно указывать язык и отображать название атрибута в нужно языке.

Не совсем понял назначение AttrValue - для чего?
Предполагалось делать граничную сущность в отношении Отчет-Признак и значения признаков для конкретного типа отчета хранить в двух полях (в зависимости от типа)
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951735
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenКлассически - признаки отдельная таблица, названия - отдельная.

Значения признаков - третья. А в таблицу признаков добавить "классическое название",
которое будет использоваться если имени на желаемом языке в БД нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951755
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
как-то так?
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951764
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewiczкак-то так?
Да, как-то так.
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38951769
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
спс
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38952042
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewiczИдея - класть это все базу, привлечь переводчика и конечному пользователю показывать отчет на его любимом языке (искать по названию признака) и возвращать нужное

Мистер знает толк в извращениях :)
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38952131
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с аналогичной темой недавно.

Изначально было сделано по модели EAV

таблица-справочник объектов id, name,.......
таблица-справочник параметров id, name,.......,NameRussian, NameEnglish,...
таблица носитель данных: id_object(int),id_parameter (int), Value, id_units

А описании параметров не стал париться с многообразием языков, просто вбил жесткие колонки для 5 языках основных(Русский, Английский, Немецкий, Испанский, Французский, чисто и практических соображений что технологии, что промышленность, что интернет развит в странах, говорящих на этих языках, остальные подстраиваются.

На клиента выносил данные из последней таблицы транспонируя одномерную таблицу в классический вариант как в экселе: строки имена объектов, колонки имена параметров. Для этого использовалась хранимая процедура из 160 строк (если красиво отформатировать). В зависимости от выбора языка - перетранспонировал данные и брал название из соответствующей колонки.
Для отчетов-карточек объектов запрос получался еще проще - одномерная таблица со списком значений для соотвествующего объекта.
-----
Новое тербование - хранить таблицу-описание объектов в аналогичном экселу виде, строки - объекты, колонки имена параметров.
Начался тра...дром!
Поскольку имена параметров для простоты надо хранить в латинском спеллинге (можно, конечно, все в скобки обрамлять, но сложные названия, это пепец), то для отчета и показа на клиента требуется ТРАНСЛИРОВАТЬ латинскую аббревиацию имени параметра в название колонки на соответствующем языке, а для этого НАДО иметь эту самую таблицу перевода на разные языки. Пришлось сделать почти точно такую же таблицу как в случае EAV модели, только в этом случае natural key было мое латинское имя параметра. Ну и, соответственно, много-много кода для проверки языка 5 IF-groups по 50 параметров, итого уже 250 строк как минимум при выносе данных на клиента.
Короче, мое долгое повестование имеет целью вопрос - а н а х р е н а козе баян? В варианте EAV я ну запросто крутил данными, и даже если добавляется НОВЫЙ язык (что довольно редкое явление), всего несколько небольших изменений в коде, а в случае НОВОЙ парадигмы сверху - еще 50 проверок-трансляций как минимум и куча других изменений и на клиенте и на сервере.
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38952435
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander2Поскольку имена параметров для простоты надо хранить в латинском спеллинге (можно, конечно, все в скобки обрамлять, но сложные названия, это пепец), то для отчета и показа на клиента требуется ТРАНСЛИРОВАТЬ латинскую аббревиацию имени параметра в название колонки на соответствующем языке, а для этого НАДО иметь эту самую таблицу перевода на разные языки. Пришлось сделать почти точно такую же таблицу как в случае EAV модели, только в этом случае natural key было мое латинское имя параметра. Ну и, соответственно, много-много кода для проверки языка 5 IF-groups по 50 араметров, итого уже 250 строк как минимум при выносе данных на клиента.


Что, у Вас код перевода названий колонок зависит от числа параметров и числа языков? А, ээ, зачем?.
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38952559
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> а н а х р е н а козе баян?

Хороший вопрос. Ответ - корректная локализация. Ключевой вопрос на самом деле в том, как вы одновременно обеспечиваете единообразное описание реляционных и не реляционных структур.
...
Рейтинг: 0 / 0
Храниение названий признаков на разных языках
    #38952986
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин, guest_20040621

чтоб не портить тему TC, перенес обсуждение своего поста в новую ветку, если интересно, там картинку выложил, может она ответит на вопросы.
новое обсуждение
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Храниение названий признаков на разных языках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]