我想在数据库中为2个实体建模:CafeBrand
和Cafe
。我在两个实体中都有相同的属性:
CafeBrand{
foodDescription,
website,
email,
phone
}
cafe{
foodDescription,
website,
email,
phone
}
所以,让我们说麦当劳的所有'咖啡馆'都有相同的食物描述:'垃圾食品'。但是其他一些品牌可能会为不同的咖啡馆分别提供食物描述(“三明治”,“仅限饮料”,......)。
与网站/电子邮件/电话属性相同:咖啡馆可能有自己的网站/电子邮件/电话,但也可能使用相同的网站/电子邮件/电话。通常相同的CafeBrand有一个网站,但不同的咖啡馆有不同的电子邮件/电话。
我的问题是:以这种方式存储这些属性是明智的,然后使用if / else(在SQL或代码中)来获取正确的描述,网站,电子邮件,电话(如果是咖啡馆) .website == null然后使用cafebrand.website)或者是否更好地使用关系来分隔表'FoodDescription','Website'数据不会经常写入数据库,大多数时候只有select语句将是使用
如果公司有一家咖啡馆。这个foodDescription / Website应该如何分成CafeBrand / Cafe表。
答案 0 :(得分:0)
正如Bill Gregg所提到的,你应该把所有类似的数据放在一个表中。所以你会得到以下结构:
cafe {
foodDescription,
website,
email,
phone,
brand
}
由于foodDescription
,website
等列将包含我假设的非常独特的值,因此将数据分成不同的表格不会获得任何利润。