Semi-Structured Database Design