On Thu, Sep 19, 2013 at 5:46 AM, David Bovill <david.bov...@gmail.com>wrote:
> > 1. No good reason - historical > 2. ID lookups tend to be faster > 3. Some scenarios allow you to derive meaning from incremental increases > in the number - ie it is the next in a series > > Naturally in Livecode the difference between numbers and strings is > deliberately and unusually blurred. Still in general it always seemed to me > that reasons 2 & 3 were insufficient. Can someone explain why on earth the > Twitter API does not just use screen names ( a unique lower case string of > 15 chars without spaces) - what is the advantage of also having a 16 > integer number? I'm not a DBA, but I'll take a swing at this. 1. Databases have auto-increment for numeric keys. It would require work to do the same thing with strings. 2. Numeric keys are efficient -- both compact and fast. Maybe not as important these days, but still a consideration. 3. Context does matter, so the fact that I can look at a row with a key of 12345 and know that rows created around the same time will have similar numbers is useful, even if the table also has columns for the creation date. Finally -- I'm a purist, but primary keys should never be based on actual data. In other words, they should be artificial -- some say surrogate. Here's an essay on keys <http://www.agiledata.org/essays/keys.html>. I only skimmed it, but it looks reasonable. _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode