Re: Enforce primary key on every table during dev?

Ron Johnson <ron.l.johnson@cox.net>

From: Ron Johnson <ron.l.johnson@cox.net>
To: marcelo <marcelo.nicolet@gmail.com>, pgsql-general@lists.postgresql.org
Date: 2018-03-01T20:55:57Z
Lists: pgsql-general
On 03/01/2018 02:32 PM, marcelo wrote:
>
>
> On 01/03/2018 17:21 , Ron Johnson wrote:
>> On 03/01/2018 02:08 PM, marcelo wrote:
>>>
>>>
>>> On 01/03/2018 16:42 , Ron Johnson wrote:
>>>> On 03/01/2018 01:11 PM, marcelo wrote:
>>>>>
>>>>> On 01/03/2018 16:00 , Ron Johnson wrote:
>>>> [snip]
>>>>>> If your only unique index is a synthetic key, then you can insert the 
>>>>>> same "business data" multiple times with different synthetic keys.
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Angular momentum makes the world go 'round.
>>>>> IMHO, business logic can and must preclude "garbage insertion". Except 
>>>>> you are inserting data directly to database using SQL, any n-tier 
>>>>> architecture will be checking data validity.
>>>> bl
>>>> Any n-tier architecture that's bug-free.
>>>>
>>> Do you know about unit testing?
>>
>> Way Back When Dinosaurs Still Roamed The Earth and I first learned the 
>> trade, the focus was on proper design instead of throwing crud against 
>> the wall and hoping tests caught any bugs.  Because, of course, unit 
>> tests are only as good as you imagination in devising tests.
>>
>>
> So, you are fully convinced that there´s no bug free software... Same as I 
> (and you) can code following the business rules, you (and me) can design 
> unit tests not from "imagination" but from same rules.
> Moreover: you can have a surrogate key (to speedup foreign keys) and 
> simultaneously put a unique constraint on the columns requiring it. What´s 
> the question?

Implementing tests to cover edge cases is much harder than implementing 
business rules in natural (and foreign) keys.


-- 
Angular momentum makes the world go 'round.