在MySQL中存储多个外键

时间:2017-11-11 07:59:30

标签: php android mysql

我处于设计困境,我正在设计一个房屋租赁应用程序的数据库,让我陷入困境的一点是房子的设施,因为房子可以有多种设施,如Ceiling board,Dishwasher, Refrigerator, Paved yard, Wall fence etc怎么做我把这样的房子存放在数据库中?我得到的一些建议是(简化表格):

`  |id |description|amenities|
   |1  |           |         | 
  1. 在设施栏中存储舒适性ID,例如1,2,3,4

  2. 将便利设施字符串存储在设施栏

  3. 在两个选项1之间最好是因为我节省了内存但是没有更好的方法来存储多个ID而不是这个?

1 个答案:

答案 0 :(得分:0)

您可以使用EAV模型,您将节省内存,但会在选择时失去性能,或使用稀疏列

EAV方法:

EAV表:

  • ENTITYID
  • 属性Id

属性表:

  • 属性Id
  • 属性名称

实体表:

  • ENTITYID
  • 实体名称

属性将是

  

天花板,洗碗机,冰箱,铺砌的院子,围墙等

实体

  

房子1,房子2

稀疏列:

众议院表:

  • 众议院身份
  • 您的属性(Nullable)
  • 您的attribute2(Nullable)
  • 您的attribute3(Nullable)

简单映射:

众议院表:

  • houseId
  • 房屋名称

设施表:

  • amenityId
  • 名称

HouseAmenitiesMapping:

  • houseId
  • amenityId