Click here to Skip to main content
11,415,301 members (75,999 online)

Design and Architecture

 
GeneralRe: Simple composition - Your thoughts? Pin
VuNic15-May-12 19:32
memberVuNic15-May-12 19:32 
QuestionDatabase Modeling - Conditional Relationships Pin
Leslie Sanford11-May-12 9:34
memberLeslie Sanford11-May-12 9:34 
AnswerRe: Database Modeling - Conditional Relationships Pin
mark merrens11-May-12 10:49
membermark merrens11-May-12 10:49 
GeneralRe: Database Modeling - Conditional Relationships Pin
Leslie Sanford12-May-12 9:42
memberLeslie Sanford12-May-12 9:42 
Thanks for your reply.

The solution I've settled on uses part of your answer. I have a 'base' table for all items. Then I have tables where needed for 'derived' sub types. These derived tables have a 'zero to one' relationship to the base table. The derived tables are a way of extending the properties of items in the base table.

So the items table could look like this:

+----+--------+-------+
| id | name   | price |
+----+--------+-------+
|  1 | wheel  | $1.23 |
+----+--------+-------+
|  2 | wire   | $1.50 |
+----+--------+-------+

Then if there are more than one kind of cogs, I can subclass them in 'derived' tables (like derived classes in object oriented programming).

wheels table
 
+----+--------+--------+
| id | cog_id | radius |
+----+--------+--------+
|  1 |    1   |   50"  |
+----+--------+--------+

wires table
 
+----+--------+--------+
| id | cog_id | length |
+----+--------+--------+
|  1 |    2   |   12"  |
+----+--------+--------+

I can then do joins to get back only wheels, and another join to get just wires.

I'm not sure if this is a common approach. I know the joins will cost more processing, but at least the schema makes sense to me.
AnswerRe: Database Modeling - Conditional Relationships Pin
Eddy Vluggen13-May-12 5:32
memberEddy Vluggen13-May-12 5:32 
AnswerRe: Database Modeling - Conditional Relationships Pin
jschell14-May-12 10:24
memberjschell14-May-12 10:24 
Questionhow to design base class? Pin
wan.rui@qq.com10-May-12 18:09
memberwan.rui@qq.com10-May-12 18:09 
AnswerRe: how to design base class? Pin
walterhevedeich10-May-12 20:29
memberwalterhevedeich10-May-12 20:29 
AnswerRe: how to design base class? Pin
Pete O'Hanlon10-May-12 22:52
protectorPete O'Hanlon10-May-12 22:52 
GeneralRe: how to design base class? Pin
wan.rui@qq.com10-May-12 23:11
memberwan.rui@qq.com10-May-12 23:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web03 | 2.8.150427.4 | Last Updated 24 Apr 2015
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid