http://code.flickr.com/blog/page/4/
Это сообщение в блоге от разработчиков Flickr, в котором описывается их упрощенный подход к созданию идентификаторов GUID для фотографий в защищенной базе данных с использованием mysql.
Я работаю над приложением, которое использует MongoDB для хранения данных, которое имеет аналогичные требования для элементов, хранящихся во встроенных документах. По сути, документ в коллекции представляет собой список элементов, а затем отдельные элементы внутри , каждый из которых должен иметь какой-то идентификатор, также для целей поиска. Я бы предпочел не помещать элементы в другую коллекцию, поскольку ключи списка, которые не являются элементами, на самом деле являются просто метаданными и не должны иметь свою собственную коллекцию. В идеале это должен быть один документ.
Я думал, что для решения этой проблемы может быть реализован подход, подробно описанный в сообщении в блоге - одна конечная точка, которая генерирует GUID для этих записей и сохраняет последнее использованное значение. Проблема в том, что я не уверен, если этот подход создает проблемы при шардинге хранилища данных в монго. У меня нет опыта распространения Mongo на несколько машин. Я предполагаю, что прикладной уровень может проверить эту конечную точку при сохранении данных и установить соответствующий ключ _id
, но я не знаю, как это повлияет на запросы к набору данных.
Будет ли установка такой системы GUID ошибочной идеей? Я понимаю, что это противоречит некоторым принципам NoSQL в целом, но поскольку документы встроены, какая альтернатива существует?