Having a problem with a commercial software developer.
This is a karaoke hosting program.
I am posting this here in the hopes of either being vindicated or further chastised if I am wrong by people with more database knowledge than me.
My attempts to communicate the following problem led to this final single line email communication from him to me -
HIM: - You are an idiot.
(WOW - customer service sure has changed!)
On to the problem . . .
He recently updated his backend from stored xml files to an access db.
One table is the media table that lists all of the music files available including disc id, Artist, Title, media type and path to the file
a second table is the singer history table that lists all of the songs that each singer has ever sung including date sung,key change, tempo change and path to the file.
He has designed the tables to be linked on the path field in each table.
He has set the relationship as a one to many from the media table to the singer history table including cascade deletion. ie any record deleted in media table is automatically deleted in singer history table.
Some singers have over 300 songs in their history that have been entered over months and months
The idea that these records which are a completely different important data set other than sharing a common file path are deleted just to maintain referential integrity. Seems like very poor design to me.
My stance is that -
Singer history records are completely separate data that should not be deleted without any warning just because the song is no longer available in the media table. Media table should just have an ondelete routine that tags the record in the Singer History as inactive. That way the information is still there and available to be reactivated with a valid path at anytime in the future
The worst part is that these deletions can happen in bulk inside the program if the user goes to rebuild his media table. Without warning, months and months of built up singer history can just disappear.
Any thoughts on his current and/or my suggested structure?