我想在数据库中对 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 表。
最佳答案
正如 Bill Gregg 所提到的,您可能应该将所有类似的数据放在一个表中。因此您将收到以下结构:
cafe {
foodDescription,
website,
email,
phone,
brand
}
由于 foodDescription
、website
等列将包含非常独特的值,我认为,将数据分离到不同的表中不会获得任何利润。
关于mysql - 数据库模式实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245615/