Changes between Version 25 and Version 26 of Normalization


Ignore:
Timestamp:
04/27/26 02:58:00 (5 days ago)
Author:
221296
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v25 v26  
    383383
    384384== Final relations
    385 * Users(user_id, username, email, name, surname, full_name, password_hash, user_created_at)
    386 * Clients(client_id, user_id, is_blocked, blocked_at, blocked_reason)
    387 * Admins(admin_id, user_id)
    388 * Owners(owner_id, client_id)
    389 * Notifications(notification_id, user_id, notification_type, notification_message, notification_created_at, is_read)
    390 * VetClinics(clinic_id, clinic_name, clinic_email, clinic_phone, clinic_address, clinic_location, clinic_city)
    391 * VetClinicApplications(application_id, clinic_id, app_name, app_email, app_phone, app_city, app_address, submitted_at, app_status, reviewed_at, reviewed_by, denial_reason)
    392 * Animals(animal_id, owner_id, animal_name, located_name, species, animal_type, breed, sex, date_of_birth, photo_url)
    393 * Listings(listing_id, admin_id, animal_id, listing_status, listing_created_at, price, listing_description)
    394 * FavoriteListings(saved_user_id, saved_listing_id)
    395 * Appointments(appointment_id, clinic_id, animal_id, date_time, appointment_status, notes)
    396 * HealthRecords(healthrecord_id, appointment_id, animal_id, hr_type, hr_description, hr_date)
    397 * Reviews(review_id, reviewer_id, rating, comment, review_created_at, updated_at, is_deleted)
    398 * UserReviews(review_id, target_user_id)
    399 * ClinicReviews(review_id, target_clinic_id)
     385Final relations
     386
     387After applying normalization up to 4NF, the final normalized schema consists of the following relations:
     388
     389{{{
     390UserEntity(user_id, first_name, last_name, email, password, role)
     391Users(user_id)
     392Administrators(admin_id, user_id)
     393Instructors(instructor_id, user_id)
     394
     395SubscriptionPlan(plan_id, plan_name, price, duration_months, plan_description, access_type)
     396UserSubscription(subscription_id, user_id, plan_id, start_date, end_date, subscription_status)
     397Payment(payment_id, user_id, subscription_id, amount)
     398
     399SupportTicket(ticket_id, user_id, admin_id, subject, ticket_description, ticket_status, created_at)
     400
     401Category(category_id, category_name, category_description)
     402Course(course_id, course_name, course_price, course_status, instructor_id)
     403CourseCategory(course_id, category_id)
     404
     405Module(module_id, course_id, module_title, module_description)
     406Lesson(lesson_id, module_id, lesson_title, material)
     407Quiz(quiz_id, lesson_id, total_points, passing_score)
     408QuizAttempt(attempt_id, user_id, quiz_id, score, attempt_date)
     409
     410Enrollment(enrollment_id, user_id, course_id, enroll_date, completion_status, progress_percentage)
     411Certificate(certificate_id, enrollment_id, issue_date, certificate_code, certificate_status)
     412}}}
     413
     414The final schema removes partial and transitive dependencies, avoids unnecessary redundancy, and preserves the functional dependencies from the initial universal relation.
    400415
    401416== Conclusion