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 по дате отправления: