Двойники в таблицах БД

 
0
 
Delphi, Kylix and Pascal
ava
antibiotik28 | 08.09.2016, 15:44
Добрый день !
Помогите советом ! Каким методом не допустить появления двойников в таблицах ?
Допустим есть таблица * Представительства *.
Столбики *id* *Gorod* *Sklad* .
Программно можно не добавлять записи если таковы уже есть, проверить на предмет существования, и если нет добавить , а если есть вывести сообщение !
А вот если уже есть запись *Москва*, а я повторно добавляю *Масква* ну по собственной необразованности или машинально ! Как мне правильно описать условие ? Или
как все правильно организовать?
Я только учусь ! Не сердитесь за неправильное постановление вопроса !
СПАСИБО !    
Ответы (4)
ava
Garmahis | 08.09.2016, 17:59 #
Не допустить появление второй Москвы с правильным именем в таблице проще с помощью индекса. А вот если Москва и Масква тут никак не сделаешь простыми методами. Читайте про методы нечеткого поиска. Например Левенштейна. Но имхо это все чушь и никто так делать не будет. Во-первых такие способы дают некое число скажем в процентах насколько слова близки. И при сравнении например Железноводск и Железногорск процент окажется высоким. Во-вторых посмотри что даж на территории России довольно часто встречаются города с одинаковыми названиями. Например тот же Железногорск. Как быть в таком случае?  Если пользователь ошибся и создал ошибочную запись то пусть ее удаляет. Если очень хочется можно создать таблицу со списком всех реально существующих городов и сравнивать. Если такого города нет то писать что город введен неверно.
ava
kami | 09.09.2016, 18:24 #
Цитата (Garmahis @  8.9.2016,  17:59 findReferencedText)
Если очень хочется можно создать таблицу со списком всех реально существующих городов

ФИАС автору в помощь.
ava
Kitu Chepesi | 14.09.2016, 17:57 (Отредактирован 14.09.2016 18:46) #
Уникальный индекс по наименованию города (невозможность повторения названия города в таблице) в таком варианте хранения данных приведет к невозможности создать более одного склада в этом городе. А по сути вопроса задача как раз в том, чтобы иметь возможность хранить информацию о всех складах во всех городах. Нужно менять структуру базы.
ava
Kitu Chepesi | 14.09.2016, 18:00 (Отредактирован 14.09.2016 18:49) #
Для решения задачи нужно создавать таблицу городов (географических мест) и таблицу складов. Таблицу географических мест лучше всего строить как связанные таблицы регион-район-населенный пункт. А склады пусть ссылаются на таблицу населенных пунктов. То есть вместо одной таблицы будет четыре. Но тогда появится возможность единожды заполнив справочник географических мест (областей, районов, городов) его просто использовать при заполнении своей таблицы рабочей информацией.

Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить