Home Projects Jobs Clientele Contact


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: course <-> topic, take 3

From what you're saying, the course isn't necessary for the topic. In real life, the topic always belongs to some course.
I do understand the situation when topic belongs to more than one course - that totally makes sense.
I don't see much difference so far between the top-level topic and the course. The only difference I can see so far is the connection to the students. In that case top-level topic is the course. However, the topic may also have connection to the persons such as access level and status, for instance.

So, my original schema was correct, and topic relates to course as many to many.

2006/10/13, Ilya A. Volynets-Evenbakh <ilya@total-knowledge.com >:
I guess I didn't say everything that needs to be said on this subject
in coherent manner. Let's try to clear out some of this confusion, so
that we don't get stuck on this (fairly minor) detail of design.
(Some of things I will say here will be changes to functional spec, that
are still not reflected in our wiki. I'll get around to that eventually)


Unit of content organization. It is umbrella under which sub-topics,
explanations, texts, tests, etc. are gathered.

Administrative entity that encompasses certain content structure
for purposes of linking it with students.

What this means to end user.

A. Course is non-shareable entity (this is a change from original spec).
This does _not_ mean its content is not shareable. Just the administrative

B. When user creates course, interface is such, that he sets up
features separately from content.

C. Interface to creating content of course can be organized in exactly same
way as interface to creation of any topic, as it really has all the same
as normal topic.

What this means for logical organization of functionality (Model layer).

Course becomes a direct derivative of topic: it basically has same
as normal topic (has problems, tests, subtopics, etc). Plus it has some
functionality: it takes care of students signing up for it, getting
grades (if we
ever implement this kind of thing), etc.

What this means on data layer:

Course becomes an additional set of data pieces that is associated with some
topics. In other words: each course has a TLT (top level topic), that it
is associated
with. More then one course can have same TLT - this is how course
is implemented. Topic doesn't have to have direct relationship with course
(could be just a stand-alone object not yet used anywhere, could be subtopic
of some other topics).

This is still not quite complete write out of my vision, but I can't
think of the way
to make it both concise and complete. If you have questions/comments, please
try to keep all three layers in mind. This should give us a good basis.

Ilya A. Volynets-Evenbakh
Total Knowledge. CTO

Alexey Parshin,

Authoright © Total Knowledge: 2001-2008