БД Дизайн

6 отговора 584 прегледа
#1

БД Дизайн

Здравейте,
имам следния проблем с дизайна на база от данни.
Изграждам сайт за недвижими имоти [линк]
и идеята е този сайт да съществува на три езика. Когато се въведе имот от
[линк]
неговите данни трябва да се запишат едновременно на български, англ. и немски. Замислил съм да има lang файл, където в променливи ще се съдържат имената на полетата на съответния език.
проблемът ми идва с имената на градовете, селата, районите и кварталите, които трябва да съществуват и на латиница. Когато запиша даден имот от гр. Варна в българската версия, в английската трябва да се запише от скрипта (или поне така съм го замислил) - gr. Varna.
Ако запиша всички имена на БГ и въответните им на латиница в база данни, когато записвам даден имот от българската версия, преди да го запиша в английската трябва да направя заявка, която да ми върне, че на гр. Варна съотевтства gr. Varna и чак със следващата заявка да запиша имота.
Другият вариант, за който се сещам, е за всяка област да имам отделен файл, който съдържа асоциативен масив с имената на селищата на бг-> латиница и според това от коя област е избраното селище за въвеждане, да инклудна съответния файл и там да намеря селището и след това да го запиша.
Според Вас кой вариант е по-оптималния, и въобще дали няма трети вариант, който да е по-добър ?

Отговор
в отговор на Unit-731 #2

Re: БД Дизайн

Защо не направиш една функцийка, която да ти превръща кирилицата в латиница. И после пиши на воля. г = g, р = r, В = V и тн.

Отговор
в отговор на Unit-731 #3

Променливи за имената на таблиците

А не е е ли по-добре да имаш променливи (може и асоцииран масив :) с имената на таблиците, ползвани в различните езици и да ги определяш при задаване на езика? А след това тези променливи да ти участват в заявките.
А може и да съчетаеш решенията - някъде да се променят полетата, а някъде - таблиците.

Отговор
в отговор на NikB #4

Re: Променливи за имената на таблиците

Май като се замисля, най-тарикатско (оптимално) ще е с конвертираща в кирилица функция. Като се замисля, май е излишно да записвам имената на ргадовете, селата и районите в база от данни. Възникват някой неуредици, който трябва да заобикалям. Много ми е чуден точния начин, по който някой от големите сайтове (портали) за недвижими имоти е реализиран точно от към тази страна, ама едва ли някой от девелоперите ще се навие да ми каже :)

Отговор
в отговор на Unit-731 #5

Не съм сугурен...

Русе трябва да стане Rusеe май, а сигурно има и други случеи, в които една и съща буква на кир ще трябва по различен начин да се прекодира на лат.

Отговор
в отговор на Unit-731 #6

Re: Променливи за имената на таблиците

Че толкова ли е трудно да си направиш справочник с ПРАВИЛНИТЕ имена на населените места на двата (а може и повече) езика. Тъкмо ще можеш да гарантираш, че ти въвеждат коректни населени места, а не село Гъзобръково напр. При замислената от теб конвертация могат да се измислят готини бъзици Пък и е объркващо като прочетеш grad

Отговор
в отговор на NDeu #7

Re: Променливи за имената на таблиците

според мене трябва таблица на населените места с id на всяко и различните версии на името в зависимост от езика.

после е лесно да се определи на кой език гледа визитора, и да му се плякне верното име. всеки имот има поле в таблицата с имотите което казва кое е id-то на населеното място в което се намира.

ако населените места не са в таблица, търсенето по град/село ше е бааавен string search

само че кво става ако се появи град/село което го няма в таблицата? тука трябва да мисли човека как да го направи. а ако не може да си намери списък с населените места...

Отговор