2017-09-22 78 views
0

我正在创建一个网站,用户可以在其中发布他们家的列表。我有复选框,用户可以查看他们的家庭包含特性,如游泳池,壁炉,安装/拆卸车库等MYSQL选择值表结构

我只好在心中设计,但我想知道这是更正确的:

  1. 每个特性创建在家里上市表中的列,并给它一个类型enum('0','1'),其中0代表未选中,1只表示检查

  2. 创造出包含所有特性表中的属性可以有这样的:车库,游泳池,壁炉等。然后创建第二张桌子,拉动通道aracteristic ID以及与家上市ID对它

对于如:home_1有这么一行将这样创建池:

| home_1 | 1 |

其中home_1是上市ID和1是pool特征表

我应该去哪个选项与ID?

回答

0

发现。

如果你愿意查询房屋只有地址,价格和这些不是那些功能。第二种方法更容易开发和维护。

总之,使用第二种方法,如果你不会单独查询那些房屋特征 。

0

这一切都取决于您保存它们后使用数据的方法。但基本的思路应该是考虑映射在以下方面:

  1. 转到与第二选项时:

如果两个实体是多对多的(许多家庭,许多特性),你应该去第二种选择(即使将来使用连接的代价很小)。

由于您的完整数据库映射未知,因此如果特性独立于属性,我提出了一个选项。意思是说,如果您打算使用特征来引用其他表格的其他实体,那么最好再次选择其他表格。

  • 转到与第一选项时
  • 如果它仅仅是一个一对多的关系(一个家庭,很多特性),您的第一选择做工不错,因为它不仅会在获取时降低成本,而且会在您的主记录更新/删除时更新/删除家庭的相关特征。

    最后,它只由你决定数据模型的映射类型和依赖关系。