From all of the database related reference books that I have come across, there is a universal rule that state a database table should be at least 3NF.
From what I understand, a table is considered 2NF if it satisfies 1NF and it has single column primary key. Correct me if I am wrong.
So I couldn't understand why there is so much argument of having composite key especially for entities that relate M:N tables; eg:
Product_Customer table, with the columns:
Some say that primary key (
CustomerProductID) is not needed and it should use composite key (
CustomerID, ProductID) instead.
But doesn't that violate the universal rule of a table should have at least 3NF since using a composite key will not even satisfy 2NF?
Correct me if I am wrong, especially the part where I understand that if a table has composite keys, it will not be in 2NF.