Re: How would i do this?

Поиск
Список
Период
Сортировка
От wsheldah@lexmark.com
Тема Re: How would i do this?
Дата
Msg-id 200112112053.PAA19323@interlock2.lexmark.com
обсуждение исходный текст
Ответ на How would i do this?  (John Hughes <johughes@shaw.ca>)
Ответы Re: How would i do this?  (Vince Vielhaber <vev@michvhf.com>)
Re: How would i do this?  (Chris Albertson <chrisalbertson90278@yahoo.com>)
Список 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.com@interlock.lexmark.com> on 12/11/2001 03:26:09
PM

To:   John Hughes <johughes%shaw.ca@interlock.lexmark.com>
cc:   pgsql-general%postgresql.org@interlock.lexmark.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@michvhf.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





В списке pgsql-general по дате отправления:

Предыдущее
От: David A Dickson
Дата:
Сообщение: Re: How would i do this?
Следующее
От: "Mike Arace"
Дата:
Сообщение: Re: How would i do this?