May I use bson.objectid.ObjectId as (primary key) id in sql?

Question:

I am thinking if I don’t use auto id as primary id in mysql but use other method to implement, may I replace auto id from bson.objectid.ObjectId in mysql?

According to ObjectId description, it’s composed of:

  • a 4-byte value representing the seconds since the Unix epoch
  • a 3-byte machine identifier
  • a 2-byte process id
  • a 3-byte counter, starting with a random value.

It seems it can provide unique and not duplicate key. Is it a good idea?

Asked By: Tony

||

Answers:

You certainly could do this. One issue though is that since this can’t be set by the database itself, you’ll need to write some Python code to ensure it is set on save.

Since you’re not using MongoDB, though, I wonder why you want to use a BSON id. Instead you might want to consider using UUID, which can indeed be set automatically by the db.

Answered By: Daniel Roseman
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.