Hi Richard,
On 7/29/2015 10:19 AM, Richard Reina wrote:
If I were to create a database table(s) to tract most common repairs to
different appliances I can't decide if it would be better to create one
table with a long ENUM column that contains repairs that could be
attributed to any appliance or different repair tables for each appliance.
All the tables would describe the same thing -- a repair -- however the the
things being repaired are different in nature which means a great deal of
types of repairs that do not relate. Here is an example.
repair_wash_mach
ID INT, Date DATE, Tech_ID INT, Type ENUM( 'leak', 'motor_coupler',
'pump', 'controls', 'agitator')
repair_dish_washer
ID INT, Date DATE, Tech_ID INT, Type ENUM( 'drain_arm', 'drive_belt',
'door_latch', 'spray_arm', 'drain_valve')
repair_refridgerator
ID INT, Date DATE, Tech_ID INT, Type ENUM( 'circ_fan', 'compressor',
'disps_line', 'drain_pan', 'feeler_arm')
Or since they are all repairs should they be in one table with a REALLY
long ENUM table -- that will need to me altered as the number of appliances
will most likely increase?
ID INT, APPLIANCE VARCHAR(35), Date DATE, Tech_ID INT, Type ENUM( 'leak',
'motor_coupler', 'pump', 'controls', 'agitator', 'drain_arm', 'drive_belt',
'door_latch', 'spray_arm', 'drain_valve', 'circ_fan', 'compressor',
'disps_line', 'drain_pan', 'feeler_arm')
I would suggest a table of appliances, a table of components, and a
table of repairs something like this...
repair_tasks(
task_id int auto_increment
, task_description varchar(25)
, appliance_id int not null
, component_id int not null
)
That way you can have two tasks for the same device. For example,
A task of "attach door seal" would associate the fields (refrigerator,
door seal). So would "replace door seal". So would "order door seal
from warehouse".
I would not use ENUMS, you would run out of options too quickly. My
examples are extremely simplified but hopefully you can see the storage
pattern I am suggesting.
Regards,
--
Shawn Green
MySQL Senior Principal Technical Support Engineer
Oracle USA, Inc. - Integrated Cloud Applications & Platform Services
Office: Blountville, TN
Become certified in MySQL! Visit https://www.mysql.com/certification/
for details.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql