Не стоит ли использовать идентификатор таблицы базы данных в качестве внешнего идентификатора API?

Мы разрабатываем службу HTTP с внешним API, который должен будет хранить некоторые элементы, которые потребителям внешнего API может потребоваться получить позже. Все хранится в таблице foos , и текущий план состоит в том, чтобы просто использовать первичный ID-ключ таблицы в качестве внешнего уникального идентификатора. Моя интуиция подсказывает мне, что это плохой дизайн, но я не могу эффективно аргументировать свою позицию, отчасти потому, что я не могу сформулировать причины.

Вот единственные недостатки, о которых я пока могу думать:

  • Что, если мы захотим изменить схему? Нам придется заново заполнить все, чтобы их идентификаторы остались нетронутыми, или реализовать другой столбец уникальных идентификаторов во время перемещения
  • Незначительный (?) Риск безопасности (я знаю, безопасность через скрытность небезопасна и т. Д.)

Есть ли другие серьезные недостатки, или я просто параноик? Также были бы признательны за ссылки на опубликованные статьи, в которых говорится об этом!

5
задан Suan 22 February 2012 в 22:01
поделиться