我正在创建一个SQL Server数据库,并且对一个关系有疑问。我有两个实体Product
和Category
。该关系是一对多的,因此一种产品可以具有一个类别,但是一个类别可以具有多个产品。
哪种方式被规范化,为什么(哪种规范化形式)?
Product { productId, productName, productPrice }
Category { categoryId, Name }
Product { productId, productName, productPrice, categoryName }
如果Category
具有更多的属性,而不仅仅是名称,我无疑会创建另一个表。但是在这种情况下,我不确定是否必须创建新表,因为该表仅包含名称或将其保留为varchar
列。那不是要创建更多的列并在数据库中占用更多的空间吗?
答案 0 :(得分:2)
我认为您应该创建以下两个表:
if (input == "!");
// ^ ^ ^
if (input == '!')
考虑到类别表中的categoryId是主键,您应该在产品表中的类别ID上参考类别表中的categoryId创建一个外键约束。