Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / General DB Topics / General DB Topics / May 2004

Tip: Looking for answers? Try searching our database.

sound design for relation intensive functionality and expandability.

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
gonzo - 27 May 2004 21:37 GMT
This is a general question that will be applied with MySQL.  It
regards the methodology for creating a sound design of many tables to
be used in a groupware setting.  It is best that I describe the
functionality.  For those already acquainted with TUTOS
(www.tutos.org) I am trying to fully understand the way that it is
laid out so I can add some modules to it.

Imagine a groupware program with lots of functionality like contacts,
notes, documents, tasks, calendar, projects, teams, products, etc.
You can create a team and assign projects to that team.  Within this
project you can assign staff to this team and give them tasks to do.
To these tasks you can add documents, notes etc.  You can attach as
many notes as you want to practically anything.  The way that tutos
accomplishes this is to assign every object an id and a type.    
Every type has a table in the database and these tables at least have
the id and link_id for the particular oject.  For instance, imagine I
create a task (id 100 and type 2).  Then I create a note for this task
(id 101 and type 4).  In the notes table, the note just created has a
link_id of 100 because it refers to the task just created.

Are there any extra considerations for a system such as this one where
you want to maintain reference integrity and allow for easy expansion?
Additionally, I would like suggestions as to why TUTOS did the
following:
1.  The objectids table has a tutostype identifier so for instance,
files have an identifier of -8.  I don't see the mapping of these
identifiers as a table.  Does anyone have any reason why this is?  Why
would it be implemented in the code?

Any suggestions and links for things to consider in situations such as
this one where there are a good amount of objects that relate to one
another and expandability is crucial is greatly appreciated.
Alan - 28 May 2004 14:17 GMT
Not really enough info to say for sure, but it sounds like they overlayed a
OO design on a RDBMS. Not usually the best thing to do, and is generally not
necessary, as a relational design can handle whatever is needed anyway (most
of the time, and certainly in this case).

Anyway, why reinvent the wheel? Such programs already exist.

> This is a general question that will be applied with MySQL.  It
> regards the methodology for creating a sound design of many tables to
[quoted text clipped - 28 lines]
> this one where there are a good amount of objects that relate to one
> another and expandability is crucial is greatly appreciated.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.