Overnormalization of tables

by user1946989   Last Updated October 09, 2019 20:06 PM

I am working with a Django application on a MySQL database. My colleagues are using some kind of over normalization, let say we have the typical product table:

Table PRODUCTS:  
- ID
- code
- category
- name 
- quantity 
- price 

they want to do two tables like this

Table PRODUCTS:
- ID 
- name 

Table PRODUCTS_PROPERTIES
- foreign key on product ID
- code
- category
- quantity
- price 

I want to do two tables like so

Table PRODUCTS:  
- ID
- FK on Categories ID
- code
- name 
- quantity 
- price 

Table CATEGORIES:
- ID
- name 

Our setup is already sluggish and convoluted. I only see overhead cost of maintaining two similar tables with ORM classes/REST API on top.

My colleagues' arguments are:

  1. it will make some query faster
  2. would save space
  3. make it easier to add new columns
  4. could map later the properties table to another table of custom products.

if that matter our real model for this part will be at max 1000 rows and 10 to 30 columns.

I have argued a lot for keeping code simple and not using unnecessary joins and just started to fill bad after reading this: https://stackoverflow.com/questions/173726/when-and-why-are-database-joins-expensive

Which solution would you recommend and why?



Related Questions



Data normalization (from 0NF to 1NF)

Updated April 15, 2015 22:02 PM

Database Normalization

Updated August 09, 2015 17:02 PM

Functional dependencies and candidate key

Updated May 15, 2018 02:06 AM

DECOMPOSE R upto BCNF

Updated November 18, 2018 18:06 PM