172 похожих чатов

Всем доброго времени суток. Меня интересует такая вещь как external_id

или как его еще называют XML ID.

Когда я импортирую товары из xml файла или через парсинг, или собираюсь сохранять id пользователя telegram, мне необходимо как-то хранить внешний id из другой системы.


Стоит ли этот external_id напрямую записывать вместо дефолтного id. Вот кажется зачем мне два id. Если external_id и так уникален.

С какими проблемами я могу столкнуться если внешний id буду записывать в поле id? Я не опытен в проектироваонии БД. Дайте совет. Не могу определиться.

Если есть какая-то статья на эту тему, буду рад есть тыкнёте меня в неё. Пока ничего не нашел.

9 ответов

77 просмотров

Не надо полагаться на корректность внешних данных. Свой внутренний уникальный ключ удобнее, практичнее и надёжнее.

Роман Жарков
Не надо полагаться на корректность внешних данных....

Все равно придётся думать и выбрать политику работы с ними. Потому что вот прошёл одинаковый external id, и что это? Дубликат данных или сбой на стороне поставщика?

Artur Karapetov
Все равно придётся думать и выбрать политику работ...

Например, сохранить с новым внутренним id, поставить статус “кривой” и потом проверять. Тут не надо думать, это простейший шаблон.

Роман Жарков
Например, сохранить с новым внутренним id, постави...

Потом все равно думать придётся. Думать я имею ввиду анализировать.

Artur Karapetov
Потом все равно думать придётся. Думать я имею вви...

Простейший анализ нам подсказывает, что мы не в курсе бизнес логики приложения. Не надо думать, не надо гадать.

>С какими проблемами я могу столкнуться если внешний id буду записывать в поле id? С тем, что он можэт оказаться не таким уникальным, как сегодня заявляется. Вообще -- это вопрос в первую очередь бизнес-анализа, чем DBA. Можэт ли это поле не соответствовать определению уникального ключа? Что мы будем делать, если окажэтся, что несоответствует? Например, тот жэ telegram id. Пока это один сервер telegram.org -- он почти наверняка будет уникальным. Что, если Дуров сдержыт свои обещания и сделает telegram просто протоколом? Уникальной станет связка сервер:id. Есть ли на это шансы? Потянет ли ваш проект переделку или его придётся выкидывать? Это вопросы по оцэнке рисков к БА.

И да, замечу, что я очень люблю естественные PRIMARY KEYS. Во всех временных проектах использую их массово. В чём-то надолго.. Ну, бывает, использую, но чаще стремаюсь.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта