数据库模式实用方法

时间:2013-11-27 14:52:45

标签: mysql sql database

我想在数据库中为2个实体建模:CafeBrandCafe。我在两个实体中都有相同的属性:

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表。

1 个答案:

答案 0 :(得分:0)

正如Bill Gregg所提到的,你应该把所有类似的数据放在一个表中。所以你会得到以下结构:

cafe {
   foodDescription,
   website,
   email,
   phone,
   brand
}

由于foodDescriptionwebsite等列将包含我假设的非常独特的值,因此将数据分成不同的表格不会获得任何利润。