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?
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? |