Re: IS it a good practice to use SERIAL as Primary Key? - Mailing list pgsql-general

From Ron Johnson
Subject Re: IS it a good practice to use SERIAL as Primary Key?
Date
Msg-id 45662555.3080700@cox.net
Whole thread Raw
In response to Re: IS it a good practice to use SERIAL as Primary Key?  ("Sander Steffann" <s.steffann@computel.nl>)
Responses Re: IS it a good practice to use SERIAL as Primary Key?  (Scott Ribe <scott_ribe@killerbytes.com>)
List pgsql-general
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/23/06 12:38, Sander Steffann wrote:
> Hi,
>
>>> Sure, but the check digit does not need to be stored, as it can be
>>> regenerated on demand. The user interface just verifies the check
>>> digit, then throws it away.
>>
>> $ SET GEEZER
>> $ WRITE SYS$OUTPUT "THAT'S JUST EXTRA CYCLES WASTED BY THE"
>> $ WRITE SYS$OUTPUT "CLIENT.  BETTER TO USE THEM FOR SOME OTHER"
>> $ WRITE SYS$OUTPUT "MORE PRODUCTIVE PURPOSE."
>> $ SET NOGEEZER
>>
>> That's the VAX/VMS in me oozing out.  But seriously, regenerate it
>> on demand???  That's not how it works.  This isn't a CRC or hash
>> function.
>
> Well, a check digit _is_ a kind of CRC. It is redundant information. For
> every number there is only one correct check digit, which means that the
> check digit does not add extra information to the number. So why store it?

Because it's *part of* the id number.  The way we implement it, it's
the one's digit.

c = f(n)
n' = n*10 + c

n' is what is stored in id column of the relevant table.

This way, if "you" {mistype an id number, it gets garbled in
transmission, etc}, it can be algorithmically determined whether or
not that is a valid number or not, and only if it is a valid number
do you hit the database.

Bottom line: check digits are in SSNs and credit card numbers, for a
good reason.

> You will need to add the check digit on most (all?) output that is
> interpreted by humans. The software itself can just use the number
> itself (assuming you don't need to check the integrity of the software).
>
> If you store the number in the database, I would suggest making the db
> check the number on all input too. Otherwise you might end up with
> invalid data in the database.

- --
Ron Johnson, Jr.
Jefferson LA  USA

Is "common sense" really valid?
For example, it is "common sense" to white-power racists that
whites are superior to blacks, and that those with brown skins
are mud people.
However, that "common sense" is obviously wrong.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFZiVUS9HxQb37XmcRAhogAKCPp6s995Lm84tUG9TunRvvaFbD8gCcDsv5
18fDxZwV6PrPskRym7hPzHs=
=ON0M
-----END PGP SIGNATURE-----

pgsql-general by date:

Previous
From: "Richard P. Welty"
Date:
Subject: Re: pg_dump
Next
From: Bill Moran
Date:
Subject: Re: Postgres scalability and performance on windows