| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Firebird, Interbase > id несуществующей записи |
| Автор: opx 28.5.2009, 12:52 | ||||||
| Я наверное что-то не понимаю, но все же Есть 2 таблицы:
и
Т. е. записи добавляются, id генерируются. Одно непонятно. Есть у меня информация о фирме: ООО "Форум", г. Н. Новгород г. Н. Новгород отсутствует в таблице CITY Если я вставлю запись в CITY то мне нужно ее ID передать в Firms да так, чтобы другой юзер в это время добавлял бы записи и получал свои ID. Как бы это сделать? Если после метода Post вытаскивать запросом:
То я могу напороться на ID другого пользователя. Поправьте, если я ошибаюсь |
| Автор: Gluttton 28.5.2009, 14:02 | ||
Так? При этом рекомендую наложить на CITY.NAME ограничение UNIQUE, что б два Н.Новгорода не появилось Не давно (за последние две недели) на ветке форума "Базы данных" была тема про правильность написаня названий районов и городов, БД там какая то про гостиницы была... Так вот там было озвучено очень интересное (на мой взгляд) предложение реализации того, что бы корректно обробатывать ситуации, когда разные пользователи по разному называют города (например. Н.Новгород, Нов. Новгород, Новый Новгород), а БД при этом корректно относит их к одному (эталонному названию: Новый Новгород). |
| Автор: opx 28.5.2009, 14:55 | ||
Так то оно так... но
Добавлено через 4 минуты и 20 секунд Нет. Этого города еще нет в списке. Нужно добавить город и Фирму с ID этого города и чтобы не пересечься с другим пользователем |
| Автор: Gluttton 28.5.2009, 15:26 | ||||||||
И непременно одним запросом? 1. Выполняем запрос:
2. Если запрос возвращает NULL, то:
3. Не зависимо от результата п.п. 1, 2:
А как за один запрос выполнить это всё я не знаю. Возможно в этом может помочь EXCEPTION + TRIGGER + PROCEDURE. |
| Автор: Deniz 28.5.2009, 15:39 | ||
Если есть уникальный индекс в City по Name, то метод Gluttton, тоже подойдет, он просто забыл дописать вставку в City. |
| Автор: opx 28.5.2009, 15:53 |
| Так и думал, что я туплю. Спасибо, что подсказали |
| Автор: Deniz 8.6.2009, 05:21 |
| он просто получит новый уникальный ID, которого еще нигде нет. |