Yes. The problem is between best practice and best theory. I'd still
normalize based on functional dependencies, but add in the surrogate
key and then just add a unique index on the functional key.
-- KevinOn Mon, Feb 2, 2009 at 5:09 PM, Malcolm Edgar <malcolm.edga..mail.com> wrote: > I think what we are talking about are surrogate primary keys. > > http://en.wikipedia.org/wiki/Surrogate_key > > Which is generally accepted as a best practice (well mostly, depending on > the DBA). > > regards Malcolm Edgar > > On Tue, Feb 3, 2009 at 1:48 AM, Matt Kerr <mrmattker..mail.com> wrote: > >> > Do poeple agree w/ me here? >> >> yes. >> >> >> On Mon, Feb 2, 2009 at 9:15 AM, Eric Lazarus <ericllazaru..ahoo.com> >> wrote: >> > I can't let this point(er) go buy: JUST SAY NO TO MEANINGFUL POINTERS! >> > >> > There are BIG problems with having meaningful primary keys in general in >> terms of keeping your program growing and useful long term. When you can >> avoid it, avoid it... and when YOU are designing the underlying database >> from scratch, I think you can almost always avoid it. Putting meaning in the >> pointers is often the reason that a system needs to be re-written or pitched >> and replaced. >> > >> > A client of mine had to replace an existing application because they had >> used four budget product codes as part of a pointer field and could no >> longer represent the number of products in four digits. Cost huge $ to >> upgrade to SAP... >> > >> > Here is another example, a bad choose made by apple early on, putting >> data into what amounts to a pointer: >> > >> > http://en.wikipedia.org/wiki/Mac_OS_memory_management >> > >> > So, now it seems that the name and DOB of each person is not going to >> change. Later it turns out that they do change under some situations and now >> you have to write big hacks to deal with it. >> > >> > Just say no to meaning in pointers! Keep pointers STUPID! Meaningless bit >> squences make great pointers in OO programs. That's my view. >> > >> > Of course rules are made to be broken and, when the DB exists already and >> is used by a big pile of existing code, you likely have no choice but in >> other situations, try to avoid meaningfulness in pointers. >> > >> > Do poeple agree w/ me here? >> > >> > Eric >> > +1 (917) 589-6579 >> > >> > --- On Mon, 2/2/09, Pierre Lavignotte <pierre.lavignott..mail.com> >> wrote: >> > >> > From: Pierre Lavignotte <pierre.lavignott..mail.com> >> > Subject: Re: How to create Meaningful Primary Keys? >> > To: use..ayenne.apache.org >> > Date: Monday, February 2, 2009, 8:28 AM >> > >> > I don't think his question is about sequence usage but about selecting >> rows >> > with specific PK values... >> > >> > Cordialement, >> > Pierre Lavignotte >> > Ingénieur Conception & Développement >> > http://pierre.lavignotte.googlepages.com >> > >> > >> > On Mon, Feb 2, 2009 at 2:25 PM, Alessio Giovanni Baroni < >> > alessiogiovanni.baron..mail.com> wrote: >> > >> >> It's all ok. But, you are sure that in Entity screen, you are selected >> >> "Custom Sequence" on the "PK Generation Strategy"? >> >> If you do it, AND you add a filed relative to a pk column, you can >> > handling >> >> the keys, without the cayenne's control. >> >> >> >> Hi. >> >> >> >> >> >> 2009/2/2 Νίκος Παράσχου <niparas..mail.com> >> >> >> >> > First of all thank you for your replies. >> >> > >> >> > I have the following table: >> >> > >> >> > Vehicle ( >> >> > plate_num CHAR(10) NOT NULL, >> >> > mixed_weight DOUBLE PRECISION NOT NULL, >> >> > type CHAR(30) NOT NULL, >> >> > manufacturer CHAR(20), >> >> > PRIMARY KEY (plate_num) >> >> > ) >> >> > >> >> > In Cayenne Modeller I have the dbEntity "vehicle" with all >> > the above >> >> > attributes (plate_num is check as PK). There is also the objEntity >> >> > "Vehicle" with all the above attributes except the PK >> > (plate_num). >> >> > >> >> > I want to select the type of the vehicle with plate_num = >> > "AHZ-4141". >> >> > >> >> > Could you please post some code samples? I have tried so many things >> >> > (with DataObjectUtils too) but still no success. >> >> > >> >> > Thank you, >> >> > Nikos >> >> > >> >> > Στις 02-02-2009, ημέρα Δευ, και ώρα 12:49 +0100, >> > ο/η Pierre Lavignotte >> >> > έγραψε: >> >> > > Hi Nikos, >> >> > > >> >> > > If you need PK for all your tables, then maybe you need to >> > generate >> >> them. >> >> > > But if you only need to use them for a couple tables then you >> > should >> >> look >> >> > at >> >> > > DataObjectUtils class. >> >> > > >> >> > > >> >> > > Cheers, >> >> > > Pierre >> >> > > >> >> > > Cordialement, >> >> > > Pierre Lavignotte >> >> > > Ingénieur Conception & Développement >> >> > > http://pierre.lavignotte.googlepages.com >> >> > > >> >> > > >> >> > > On Mon, Feb 2, 2009 at 12:35 PM, Νίκος Παράσχου >> > <niparas..mail.com> >> >> > wrote: >> >> > > >> >> > > > Hello, >> >> > > > >> >> > > > It is the first time I am using cayenne and I have some >> > questions >> >> > > > regarding the primary keys. >> >> > > > >> >> > > > What I want to do is select some rows of a table where the >> > PK has a >> >> > > > specific value. The problem is I can't access the PK. I >> > can specify >> >> > > > qualifiers only with the non-PK columns. The PKs I am using >> > have some >> >> > > > meaning (they are not just numbers) so it is very important >> > to be >> >> able >> >> > > > to use them. >> >> > > > >> >> > > > How can I add the PK to the fields of the Object Entities? >> >> > > > >> >> > > > In this page >> >> > http://cayenne.apache.org/doc20/primary-key-generation.html >> >> > > > the answer is to create a Meaningful Primary Key. >> >> > > > >> >> > > > How can I create Meaningful Primary Keys? >> >> > > > >> >> > > > Are there any security issues when using Meaningful Primary >> > Keys? >> >> > > > >> >> > > > Thank you for your time, >> >> > > > Nikos >> >> > > > >> >> > > > >> >> > >> >> > >> >> >> > >> > >> > >> > >> >
This archive was generated by hypermail 2.0.0 : Tue Feb 03 2009 - 11:28:29 EST