Re: The Tutorial(TM)

From: david(at)fetter(dot)org (David Fetter)
To: pgsql-docs(at)postgresql(dot)org
Subject: Re: The Tutorial(TM)
Date: 2004-01-08 23:47:51
Message-ID: GmSdnZL2avO6cWCiXTWc-g@speakeasy.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

Christopher Browne <cbbrowne(at)acm(dot)org> wrote:
> Oops! david(at)fetter(dot)org (David Fetter) was seen spray-painting on a wall:
>> On Thu, Jan 08, 2004 at 06:07:13PM +0100, Peter Eisentraut wrote:
>>> David Fetter wrote:
>>> > Expanding on that, putting FK's in "Advanced Features" gives the
>>> > (IME always wrong) impression that they're optional.
>>>
>>> They *are* optional.
>>
>> I disagree.
>>
>>> The first chapter is about getting the data in and out. That is
>>> not optional for using a database. Transactions, views, foreign
>>> keys, primary keys even, and everything else that some people
>>> think is essential for a "real" database are in fact optional.
>>> Remember that the tutorial is intended for people starting from
>>> zero.
>>
>> No, they're not optional. If people see how it's done right,
>> starting from zero, they will not then develop bad habits that have
>> to be un-learned.
>>
>>> Let's not overwhelm them right away.
>>
>> I don't think this will be overwhelming.
>
> When some Pointy-Haired Type has some ridiculously large list of
> things that they say are all "top priorities," that implies that all
> are of equally _LOW_ priority.

Good point. How about this, then? For the table create scripts at
the beginning, I'll put in FK's with a pointer to the DB design
section, and just go with 'em from there. That way, people get used
to seeing and doing things the right way, even if they don't
understand them right off the bat.

> I rather like Tom Lane's suggestion that it makes sense to split into
> _three_ sections:
>
> 1. Rudimentary queries, where novices figure out the basics of
> SELECT, INSERT, DELETE, UPDATE. Perhaps with simple joins.
>
> 2. Intermediate queries, where more complex joins, views,
> transactions, subselects, some mention of vacuum/analyze/explain
> and such, are presented.
>
> 3. The "advanced" part might instead get called "Designing
> Databases," and present foreign keys, stored procedures,
> triggers, and such.

> Foreign keys would _naturally_ flow into the section that is on
> design, as they are a "design" matter.

Excellent :)

Cheers,
D
--
David Fetter david(at)fetter(dot)org http://fetter.org/
phone: +1 510 893 6100 cell: +1 415 235 3778

Liberty is inseparable from social justice, and those who dissociate
them, sacrificing the first with the purpose of attaining the second
more quickly, are the true barbarians of our time.
Mario Vargas Llosa

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Bruce Momjian 2004-01-09 01:51:38 Re: German FAQ update
Previous Message Christopher Browne 2004-01-08 19:15:47 Re: The Tutorial(TM)