Problems with Drupal 5 - database table sequences/counters


A key design flaw in Drupal 5, especially for anyone dealing with large quantities of data, is that it doesn't use the database's built in auto-incrementing counters for its table primary keys, instead it manually tracks an per-table integer in a table called "sequences" which is updated each time new records are added. This is a bad design in all sorts of ways and really should have died a horrible death many years ago. Unfortunately it has still made its way through to v5 and is guaranteed to pose problems for anyone trying to peek beneath the surface of this really awesome CMS.

Thankfully, as with many Drupal 5 shortcomings, this has been fixed in Drupal 6. Now all tables have an automatically incrementing counter, if needed, that is controlled by the database. Now we don't need to worry about multiple record insertions conflicting, the sequences getting out of sync, or set them to do weird things like jump by two or ten instead of the default of one (occasionally useful). Or just because it's one less thing for developers to worry about, therefore less likely to cause a bug.

How to reply

Care to add your own 2 cents? Let me know via Twitter or my contact page.