Fixing This Bad Database Design