Для базы данных, которую я создаю, я решил использовать натуральные числа в качестве первичного ключа. Я знаю о преимуществах, которые позволяют GUID, но, глядя на данные, основная часть данных строки была GUID-ключами.Вопрос проектирования базы данных: GUID + Natural Numbers
Я хочу генерировать записи XML из данных базы данных, а одна проблема с натуральными числами заключается в том, что я не хочу раскрывать свои ключи базы данных во внешнем мире и позволять пользователям угадывать «ключи». Я считаю, что GUID решает эту проблему.
Итак, я думаю, что решение состоит в том, чтобы создать разреженный, уникальный iD, полученный из естественного идентификатора (надеюсь, это будет 2-way) или просто добавить дополнительный столбец в базу данных и сохранить guid (или некоторые другие multibyte id)
Полученное значение лучше, потому что нет штрафа за хранение, но было бы проще отменить и угадать по сравнению с GUID.
Я (покупка) любопытно, что сделали другие на СО, и какие у них есть идеи.
Это было бы в одну сторону, правильно, поэтому мне нужно было бы сохранить значение в базе данных, поэтому почему бы не использовать GUID (так как MD5 в итоге приведет к 16 байтам). – Alan
Поскольку идентификатор GUID можно вычислить из идентификатора и таблицы (как компонент «пространства имен» VID GUID), вам не нужно хранить или передавать его, когда он не имеет отношения к внешнему миру. Индексированный вычисленный столбец (если ваша RDBMS поддерживает его), то гарантирует, что поисковые запросы все еще бывают быстрыми. – Lucero
Спасибо. Ваши идеи интригуют меня, и я хочу подписаться на ваш информационный бюллетень. – Alan