Организация БД

Здравствуйте! Не могу определиться принципом создания бд, подскажите как организовать, пожалуйста Необходимо по адресу вычислить район, то есть у меня есть список к какому району относятся улицы и дома. Пользователь должен ввести улицу, номер дома и получить район. Как это лучше организовать? На данном этапе я вижу пока так первый столбец список улиц, второй столбец номера домов (для каждого номера дома, название услицы в стобце улицы дублируется) ну и далее на против каждой записи название района То есть пользователю из комбобокс предлагается выбрать улицу Дальше ему предлагается выбор из второго столбца номера дома ну и далее ему выдается результат с районом Но если учесть, что у меня 60 улиц и на каждом по 60 домов, получается 3600 записей это что то очень много) ВОт как корректно организовать не пойму, подскажите)Ммм появилась идея, сделать шахматку название столбцов номера домов название строк - улицы, найти пересечение и вывести название района, хотя получается тоже самое)) таблица 60 на 60 и заполнять ее, хотя этот вариант мне больше нравится.. наверняка кто-то решал такие задачи и есть простое решение)Вот как такое организовать http://wpcalc.com/uznat-rajon/
6 ответов

появилась идея, сделать шахматку
Прочитайте сначала теорию организации БД, про связи в таблицах, про SQL-запросы. Потом сделайте 3 таблицы: "Районы", "Улицы" и "Дома", свяжите их отношениями "один-ко-многим" и напишите одну строчку запроса. Все!


Угу Select * from ДОМА where НОМЕР like '+qoutedstr(edit1.text); Select * from УЛИЦЫ where УЛИЦА Like '+qoutedstr(DOMt); Select * from RAION where RAION like '+qoutedstr(ADRES); Можно еще через джоин связать, я же обозначил проблему, не могу понять как организовать саму бд Допустим я создал три таблицы В первой номера домов во второй номера улиц в третьей названия районов А как их связать между собой? Я могу по идее создать одну таблицу и вбить туда все адреса и к каждому району переписать адрес и будет он искать по адресу и выводить район. Но это неправильная организация Вот я испрашиваю как лучше организовать БД, так как не понимаю, в этом и прошу подсказку.


Потом сделайте 3 таблицы: "Районы", "Улицы" и "Дома", свяжите их отношениями "один-ко-многим" и напишите одну строчку запроса. Все!
ужас
Допустим я создал три таблицы В первой номера домов во второй номера улиц в третьей названия районов
точно таблицы? зачем тебе таблицы с номерами домов?D1973, Vologd, господа, скачайте КЛАДР и посмотрите как организовано хранение адресовЗЫ Vologd, порешайте задачки на sql-ex.ru, потренируйте скилл


зачем тебе таблицы с номерами домов?
Ну как "зачем"... Учет вести, например... А то ведь можно несуществующий номер дома забубенить...
скачайте КЛАДР и посмотрите как организовано хранение адресов
Да, вроде, как раз так примерно и организовано... схема данных:запрос на получение района по имени улицы
SELECT Regions.RName FROM Regions INNER JOIN Streets ON Regions.ID = Streets.ID_Reg
WHERE (Streets.SName="NNNNN")


D1973 Дома на одной улице могут принадлежать двум районам (к примеру, граница между районами идет по улице, где четные дома одного района, нечетные другого; бывает что район делит улицу и "поперек"), из-за этого ссылку на район в таблице улиц делать нельзя. В представленном случае в таблице Дома нужно иметь ссылку и на район и на улицу.А в КЛАДР городские районы никак не представлены.


Дома на одной улице могут принадлежать двум районам
Это, конечно, так... Ну дык и то, что я накидал - это пример за 5 минут сляпанный, такие нюансы ТС пусть сам учитывает...