mysql - 数据库模式实用方法

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

最佳答案

正如 Bill Gregg 所提到的,您可能应该将所有类似的数据放在一个表中。因此您将收到以下结构:

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

由于 foodDescriptionwebsite 等列将包含非常独特的值,我认为,将数据分离到不同的表中不会获得任何利润。

关于mysql - 数据库模式实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245615/

相关文章:

PHP SQL 日期时间问题

mysql查询根据两条数据显示输出

php - 如何使用 PDO 获取 INSERT ON DUPLICATE 影响的行数?

sql - 存储过程中不寻常的 UPDATE 语法

sql - 根据两列的范围重复行

sql - 重新索引 SQL 数据库

php - 同一登录用户分配不同的 session ID(在不同的浏览器中)

sql - 我想编写一个汇总查询并将结果显示在一个表中

ruby-on-rails - 将 Excel 电子表格中的数据提取到 Ruby 中的数据库中

java - 如何在不使用 SQL 服务器的情况下实现 Blue J (Java) 的 Access 数据库?