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:
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?