2016-05-20 2 views
1

Первоначально я хотел бы нарисовать модель _id MongoDB в моих моделях. Например:Can '_id' может быть сопоставлен с Java UUID?

case class User(_id: Option[BSONObjectID], ...) 

Однако это вызвало много проблем, потому что я должен был установить _id после того как я вставил документ пользователя. Поэтому я заменил этот атрибут, используя класс Java UUID. Это означает, что у меня будет только id в моей модели и _id, а также id в базе данных. Я начал использовать это сейчас для всех своих моделей, потому что, по-моему, плохой практикой является хранить информацию о базе данных в моих моделях (что, если я переключусь на базу данных SQL?). Могу ли я использовать UUID s как допустимую замену для _id для всех моих документов?

+0

Ничто не мешает вам заменить по умолчанию '_id' на строку, сгенерированную' UUID'. – cchantep

+0

Хорошо, но могу ли я надежно использовать сгенерированный 'UUID' для всех документов вместо' _id' или как люди справляются с этой проблемой? Я думаю, что это не очень хорошая идея, чтобы мои модели зависели от уровня базы данных, который я использую, не так ли? –

+0

Это больше вопрос дизайна, в зависимости от вашего проекта, а не технический вопрос – cchantep

ответ

-1

Просто обсуждать с точки зрения дизайна: даже если вы перейдете на (MS/My) SQL, в какой-то день у вас будет primary key autoincrement, как ключ для вашей таблицы, который будет таким же, как _id коллекции mongodb. Итак, _id действительно информация, связанная с базой данных?

+0

Лучше будет добавлен в качестве комментария – cchantep

+0

@cchantep То, что я хотел, но сайт не позволяет мне добавлять комментарий еще (пока недостаточно очков репутации) , В случае, если у вас есть downvoted, по той же причине, PLS удалить его. –