G
Guest
Hi
I am currently working on a portal for an online university. The portal
allows students, teachers, and administrators to access information, and
perform certain tasks based on roles. We are currently developping tools for
managing quizzes, assignments, news. What I realize if we have many courses,
and if each course has it's own database, there are tables which are being
repeated.
Here is an example of two courses databases each with the necessary tables
to run a quiz. All tables except the Courses table use foreign keys to relate
to the parent table.
Course A url -> "http://myservername/courseA"
dbo.Courses (Id, Name, Description, Language, Semester)
dbo.Quizzes(Id, Name, Description, CourseId)
dbo.Questions(Id, Name, Question, Choices, QuizId)
Course B url -> "http://myservername/courseB"
dbo.Courses (Id, Name, Description, Language, Semester)
dbo.Quizzes(Id, Name, Description, CourseId)
dbo.Questions(Id, Name, Question, Choices, QuizId)
So as you can see, Course A and Course B have both the same three tables
(Courses, Quizzes, Questions). Of course some tools will need to talk to both
course databases to generate reports, calculates grades, etc. Now is it
better to use a single huge database with only the three tables (Courses,
Quizzes, Questions), or is it better to keep them seperate? If so then why?
Is performance better with multiple databases, or with a single database?
Also I'm programming in asp.net 2.0 and would like to use typed datasets, and
from what I found typed dataset can only use a single connection string. Is
there a way around that? Also what about caching?
If would appreciate any feedback or advice.
Francis
I am currently working on a portal for an online university. The portal
allows students, teachers, and administrators to access information, and
perform certain tasks based on roles. We are currently developping tools for
managing quizzes, assignments, news. What I realize if we have many courses,
and if each course has it's own database, there are tables which are being
repeated.
Here is an example of two courses databases each with the necessary tables
to run a quiz. All tables except the Courses table use foreign keys to relate
to the parent table.
Course A url -> "http://myservername/courseA"
dbo.Courses (Id, Name, Description, Language, Semester)
dbo.Quizzes(Id, Name, Description, CourseId)
dbo.Questions(Id, Name, Question, Choices, QuizId)
Course B url -> "http://myservername/courseB"
dbo.Courses (Id, Name, Description, Language, Semester)
dbo.Quizzes(Id, Name, Description, CourseId)
dbo.Questions(Id, Name, Question, Choices, QuizId)
So as you can see, Course A and Course B have both the same three tables
(Courses, Quizzes, Questions). Of course some tools will need to talk to both
course databases to generate reports, calculates grades, etc. Now is it
better to use a single huge database with only the three tables (Courses,
Quizzes, Questions), or is it better to keep them seperate? If so then why?
Is performance better with multiple databases, or with a single database?
Also I'm programming in asp.net 2.0 and would like to use typed datasets, and
from what I found typed dataset can only use a single connection string. Is
there a way around that? Also what about caching?
If would appreciate any feedback or advice.
Francis