Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 02:39 30.06.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема Проектиране на многоезична база даннинови  
АвторUnit-731 (Нерегистриран)
Публикувано20.06.05 23:28



Някой проектирал ли е база данни, която трябва да поддържа различни езици ?
Ако е система за новини, не е проблем в една таблица да има полета content_bg, content_en, content_de, но при по-голяма система, където от 30 в 25 таблици ще има изредени полета за съответния език, май вече става доста неудачно, ако не от към производителност, то добавянето на нов език в системата ще бъде кошмар.

Дадоха ми такава идея:

Таблица `Languages`: Id, Name...
Таблица `News`: Id, LanguageId, Content...

Това е добре, но ако таблицата news съдържа и други колони - date, featured.... това значи, че или ще използвам една таблица за всички езични записи и ще има дублиращи се данни или ще трябва да правя отделна таблица за 'неезичните' данни (date, featured...).
И пак нещата не са толкова зле, ако имам само една таблиза, в която ще има многоезични данни, проблема е, че аз имам 20 такива таблици.

Я кажете вие какви подходи ползвате ?



Тема Re: Проектиране на многоезична база даннинови [re: Unit-731]  
Авторьь (Нерегистриран)
Публикувано21.06.05 16:14



Аз за малко опитах подхода с поддържане на многоезичните данни в една таблица.
Като казвам "за малко", имам предвид до изпълнението на първата реална заявка за търсене (като многоезичните полета участват в where-клаузата). Проблемите идваха от това, че в един обект имаше множество полета, които се поддържаха на два език. Това налагаше много пъти многоезичната таблица да се join-ва със себе си.
И така...
Лош performance.
Базата беше SQL Server. Сложихме полетата по таблиците.



Тема Re: Проектиране на многоезична база даннинови [re: Unit-731]  
Автор NDeu (динозавър)
Публикувано21.06.05 16:27



Ами много добра идея са ти дали.
А, щом имаш и "неезични" данни, най-логичното е да ги изнесеш в отделна таблица.
Структурата ти става:
Таблица `Languages`: Id, Name... (PK Id)
Таблица `News`: Id, date, featured... (PK Id)
Таблица `LangNews`: NewsId, LanguageId, Content... (PK NewsId,LanguageId; FK NewsId; FK LanguageId)


И не е страшно, че са 20 таблици.



Тема Re: Проектиране на многоезична база даннинови [re: NDeu]  
АвторUnit-731 (Нерегистриран)
Публикувано21.06.05 16:36



Това означава за всяка от 20-те таблици да изнеса по една за "многоезичните" данни ?



Тема Re: Проектиране на многоезична база даннинови [re: Unit-731]  
Автор salle (един такъв)
Публикувано21.06.05 20:57



Точно така.

Всъщност подходът е същия при т.нар. Лкоализация на софтуер.

На практика създаваш речници които могат да се превеждат повече или по-малко независимо на различни езици и след това тези речници се използват на различни места в софтуера. Връзката е някакъв идентификатор като например Номер на грешка по който се вади съответният текст на съответния език.



Тема Re: Проектиране на многоезична база даннинови [re: salle]  
АвторUnit-731 (Нерегистриран)
Публикувано21.06.05 21:10



А какъв подход ще ми препоръчаш за многоезичност на интерфейса ?
Файлове с масиви (или отделни променливи), който съдържат елементите на сайта и зависимост от текущата сесия (т.е. избрания език) да зареждам съответните променливи ?



Тема Re: Проектиране на многоезична база даннинови [re: Unit-731]  
Автор salle (един такъв)
Публикувано21.06.05 22:24



s/файлове/таблици в базата данни/g




Тема Re: Проектиране на многоезична база данни [re: salle]  
АвторUnit-731 (Нерегистриран)
Публикувано22.06.05 09:30



Нещо не мога да ти схвана шифъра на съобщението - да сложа файловете в базата данни ?




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.