Re: How would i do this?

From: wsheldah(at)lexmark(dot)com
To: Vince Vielhaber <vev(at)michvhf(dot)com>
Cc: John Hughes <johughes(at)shaw(dot)ca>, pgsql-general(at)postgresql(dot)org
Subject: Re: How would i do this?
Date: 2001-12-11 20:52:48
Message-ID: 200112112053.PAA19323@interlock2.lexmark.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

That works fine right up until the student wants to sign up for her second
class. There needs to be an intersection table that just stores class-student
combinations:

create table class-student (id serial primary key, student_id integer, class_id
integer);

with appropriate indexes. Then each student can take as many classes as they
like, a class can have as many students enrolled as the school allows, but you
don't waste space if they take fewer classes or have a low enrollment. And it
stays normalized. Etc. But like the others said, there's lots of literature
about this, most of it starting with the teacher-class-student situation, so
you're in luck. :-)

Wes Sheldahl

Vince Vielhaber <vev%michvhf(dot)com(at)interlock(dot)lexmark(dot)com> on 12/11/2001 03:26:09
PM

To: John Hughes <johughes%shaw(dot)ca(at)interlock(dot)lexmark(dot)com>
cc: pgsql-general%postgresql(dot)org(at)interlock(dot)lexmark(dot)com (bcc: Wesley
Sheldahl/Lex/Lexmark)
Subject: Re: [GENERAL] How would i do this?

On Tue, 11 Dec 2001, John Hughes wrote:

> I am new to DB programming, so im not too sure about how to implement my DB.
>
> Here is what i need: a DB with tables of:
>
> 1. Students.
> 2. Classes
> 3. Teachers
> 4. Assignments
>
> Each teacher can be assigned a class, which is compromised of a list of
> students. Each class can be given assignments.
>
> Coming from a programming background, I could do this in c++ very easily. I
> actually started inmplementing it in a similar fasion: each student class
> teacher ect would have a uniqe id in the database, and, for example, a
> class would include an array of integer student id's.
>
> This seems really error prone, and not very efficient.
>
> what is a better implementation?

Don't think array. Look at it from the other direction.

Each class has a name (prog101) a room#, teacherid, etc. and a class id.
Each student has a name, etc. and the id of the class they're taking.

Then: select name from student where classid = 4;

Where 4 could be the id for prog101.

That's the REALLY simplified version, but you get the idea.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev(at)michvhf(dot)com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mike Arace 2001-12-11 21:02:58 Re: How would i do this?
Previous Message Vince Vielhaber 2001-12-11 20:26:09 Re: How would i do this?