One more remark, Since you're storing objects into a RDBMS, I guess what you're trying to express into "the relational world" is a notion of pointer (such as an object contains a collection of something in one of its instance variable, or a child has a mother kinda relationship, link). In that case, to save you headaches and lots of "weird object-oriented modeling", an oid (object id) is what is used normally. Any sequence (the shorter the better, don't use GUID for instance!) would do...
----------------- Benoit St-Jean Yahoo! Messenger: bstjean A standpoint is an intellectual horizon of radius zero. (Albert Einstein) ________________________________ From: Alexandre Bergel <[email protected]> To: Benoit St-Jean <[email protected]> Cc: [email protected] Sent: Thu, April 7, 2011 9:49:11 AM Subject: Re: [Pharo-project] relational database and id field > Normally, you should always have a primary key to uniquely identify a record > in >a database table. If you have an attribute (or a set of attributes) that can >uniquely identify your ComicBook, you don't need an id field. BUT, if you >tell >me you're going to store lots and lots and lots of those ComicBook instances, >having an id (integer) as the primary key has potential non-negligeable >advantages over, say, something like a name. Mainly because an id (let's >suppose it's an INT) takes way less storage than say a name (VARCHAR(30) for >instance) and thus more index records can fit into the key buffer in memory. Ok, I understand. > 1) yes, always provide a primary key > 2) if you have already A primary key (even a composite one) > 2a) if you need performance and are gonna store LOTS of those objects, > the >smaller the key the better so you could create a surrogate key (the id key) >instead of using the "real" primary key > 2b) if performance is not an issue, you can use what is already available >that uniquely identifies your object (row) in the database table Thanks! > P.S. Are you using a particular OO-RDBMS framework? No, I am correcting a student thesis :-) I would probably not use SQL if I had to :-) Cheers, Alexandre > > ----------------- > Benoit St-Jean > Yahoo! Messenger: bstjean > A standpoint is an intellectual horizon of radius zero. > (Albert Einstein) > > > From: Alexandre Bergel <[email protected]> > To: Pharo Development <[email protected]> > Sent: Thu, April 7, 2011 9:19:03 AM > Subject: [Pharo-project] relational database and id field > > Hi! > > Since there are some experts in databases here, I ask a general question > about >it. > Assume that I have to use a relational database to store, let's stay > instances >of Stef's ComicBook class. > Should the class ComicBook have a field id to uniquely identify a book? > > Cheers, > Alexandre > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
