cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Malcolm Edgar <malcolm.ed...@gmail.com>
Subject Re: How to create Meaningful Primary Keys? JUST SAY NO TO MEANINGFUL POINTERS!
Date Mon, 02 Feb 2009 22:09:42 GMT
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 <mrmattkerr@gmail.com> wrote:

> > Do poeple agree w/ me here?
>
> yes.
>
>
> On Mon, Feb 2, 2009 at 9:15 AM, Eric Lazarus <ericllazarus@yahoo.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.lavignotte@gmail.com>
> wrote:
> >
> > From: Pierre Lavignotte <pierre.lavignotte@gmail.com>
> > Subject: Re: How to create Meaningful Primary Keys?
> > To: user@cayenne.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.baroni@gmail.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 Νίκος Παράσχου <niparasc@gmail.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, Νίκος Παράσχου
> > <niparasc@gmail.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
> >> > > >
> >> > > >
> >> >
> >> >
> >>
> >
> >
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message