Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

This is a follow-up to a question I wrote a while ago, for reference, you can look it up here.

I've developed a curriculum based database scheme that looks like this(Thanks Joel Brown) enter image description here

Now that a new educational system is introduced(while the old one is still not "deprecated") I have been looking for a way to integrate both curriculum systems together without creating a whole new different system; As the two systems are fundamentally different, this have been quite a challenge for me.

Here's a picture describing the new system . . .

enter image description here

(English level 1, 2, and 3 are classified as courses)

See, the new system removes the whole grades system. A jr. high school student can enroll in the exact same course(English level 3, for example) as a sr. high school student.

Is there a way to make those two systems work with my current design scheme? Or should I create a whole new scheme for the new system?

share|improve this question
    
Can you add the results of SHOW CREATE TABLE table_name for each of the tables that currently exist (and that apply to this question)? –  Willem Renzema Oct 1 '13 at 23:56
add comment

2 Answers

Would it not solve your problem to redefine the GRADE_LEVEL table such that it contains either the grade of a course or the level of the course (which ever applies)?

The rows in GRADE_LEVEL could contain values such as:

GRADE 7
GRADE 8
GRADE 9
GRADE 10
GRADE 11
GRADE 12
LEVEL 1
LEVEL 2
LEVEL 3

You might consider adding a partitioning attribute to the GRADE_LEVEL table that would indicate which educational system is being applied. This may be helpful for some of your application logic that might need to apply different processing depending on which system is in use for a given COURSE.

share|improve this answer
add comment

pardon me if I have translated the question wrong. but what I see here is the existing system is more granular level then the newer one. in the existing system GradeLevel and Courses has One-Many relation so courses can be retrieved by GradeLevel and if i need to find all unique courses i will need to eliminate the GradeLevel from my query. yet Courses table still holds unique list of courses available. Now in the new system there is no GradeLevel entity. So the new system is less granular than older one.

enter image description here

I would translate above picture as new system. from the schema perspectve nothing is changed it is just API's Accessing this tables. creating a new set of APIs for that will use new way of select/insert/update among these tables will require a good amount of code change as well to make sure code is calling right set of APIs based on who is caller and/or API call is intended for which system, new/old.

Changing the existing APIs to select/update/insert based on data received by those API will not require much work on code side. if GradeLevel information is requested or supplied then APIs will assume this is a request for/from old system otherwise it will behave for New System.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.