managing variant data

From: Date: Mon, 25 Jun 2001 09:21:42 +0000
Subject: managing variant data
Groups: php.db 
Request: Send a blank email to php-db+get-9807@lists.php.net to get a copy of this message
Hi again, another conundrum. What is the best way to deal with the following situation? You have a group of common properties including a property that indicates a second group of common properties. For example, suppose you have this table: Officers ------------ Name Rank Age Height Weight Species The 'Species' property may have the following values: Vulcan, Human, Klingon, or Android. If (Species==Vulcan) then you want to store these additional properties: MindmeldCount and YearsOnVulcan If (Species==Klingon) then you want to store these additional properties: NumberofConcealedWeapons and RidgesOnForehead If (Species==Android) then you want to store these additional properties: PositronicBrain and MemoryJigas If (Species==Human) then you want to store these additional properties: AttendedStarfleetAcademy and BloodType The problems I want to avoid are: 1) placing all the properties for all species in the Officers table (as this would include unnecessary properties for each row) and 2) storing the properties in the Officers in four seperate tables (Klingons, Humans, Androids, and Vulcans) redundantly. Should additional tables be created: Vulcans, Klingons, Androids, Humans? If so, how should these tables be joined to Officers? In an object language I would solve a problem like this be creating a base class with the Officers properties and then deriving new classes from this base class using inheritance. How do I solve this problem in a database setting? Thanks in advance for your help, Jesse

« previous php.db (#9807) next »