Is supertyping orthadox?
Date: Tue, 20 Mar 2001 12:28:04 -0000
Message-ID: <tbej6lpgfmli25_at_corp.supernews.com>
Hi all, I am implementing a system that includes a relational database.
Simply put it is a system to provision services. Each service has its own
independant data structure requirement.
We've had initial design discussions with a firm of consultants and during
this came up the issue of how do we store the services data.
The solution they came up with was what they termed as a 'generic table
structure' where basically there is a 'schema' table that stores the Field
name, data type, length, (also has a foreign key to a 'tables' table to
group the schemas together). Also there is a 'values' table that has a
foreign key to the 'schema' table that in the implentation would have a
sql_variant field that stored the data.
This is fine.. apart from the fact that you are limited to not having *any*
relationships between any of the services, which isn't practical for some of
the services. .. adding some form of flexible relationship that's easily
queryable seems to me like reinventing the wheel of what the dbms does
already for us .. not to mention exceptionally complex and probably slow.
My suggestion was that we have a seperate set of tables representing each
services data structure specifically defined and we link them all together
by using a 'Services' table. ( I think after doing a little research that
this is referred to as supertyping. Please correct me if I'm wrong). This
was disputed as being a viable alternative.. with no real other argument
other than it's 'unorthadox'.
My main question is, is this method unorthadox?.. if it isn't (as I suspect)
are there any papers (preferably online) written by respected database
theorists that I could read and point them to. I've never actually
implemented this method (although I have come up with the same design in a
project that hasn't been created yet) so I cannot prove that it works and
they have considerably more practical experience than me in this area, so I
need some way of adding quantifiable credibility to my argument.
The only other main argument that was raised against it is that it isn't
true referential integrity, as you *could* have more than one set of data in
the services structures for the same 'Services' table identifier.. which is
true but this would be constrained at business logic level (trigger etc) and
would only have performance impact on inserts.
Thank you for your time reading this and for any comments.
Kindest regards
-=- Brett
Received on Tue Mar 20 2001 - 13:28:04 CET
