我想为数据库中的2个实体建模:CafeBrand
和Cafe
。我在两个实体中具有几乎相同的属性:
CafeBrand{
foodDescription,
website,
email,
phone
}
cafe{
foodDescription,
website,
email,
phone
}
因此,假设在麦当劳的情况下,所有“咖啡馆”都将具有相同的食物描述:“垃圾食品”。但是其他一些品牌可能对不同的咖啡馆有不同的食物描述(“三明治”,“仅饮料”,...)。
与网站/电子邮件/电话属性相同:咖啡馆可能有其自己的网站/电子邮件/电话,但对所有咖啡馆都可能使用相同的网站/电子邮件/电话。相同的CafeBrand通常都有一个网站,但针对不同的咖啡馆使用不同的电子邮件/电话。
我的问题是:按原样存储这些属性,然后使用if / else(在SQL或代码中)获取正确的描述,网站,电子邮件,电话(如果cafe.website == null,然后使用cafebrand.website)是否明智? ),还是最好使用关系来分隔表“ FoodDescription”,“网站”。数据不会经常写入数据库,并且在大多数情况下,只会使用select语句。
如果公司只有一个咖啡馆。这个foodDescription /网站应如何划分为CafeBrand / Cafe表。
最佳答案
正如Bill Gregg提到的那样,您可能应该将所有相似的数据放在一张表中。因此,您将收到以下结构:
cafe {
foodDescription,
website,
email,
phone,
brand
}
由于
foodDescription
,website
等列将包含我认为非常独特的值,所以将数据分成不同的表不会有任何好处。关于mysql - 数据库架构实用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20245615/