MySQL表内一个属性有多个_在mysql中保存单个表或多个表中的不同属性类型

您描述的问题非常常见 - 通常称为"storing polymorphic data in a relational schema" . 它发生在Stack Overflow quite regularly上 .

你问“什么更好” - 这当然取决于你打算使用数据的方式 .

如果您事先不知道将要存储哪些属性 - 例如,如果您的电子商务网站将来可能会推出更多产品类型 - 纯粹的关系模型不太可能有效,因为您必须制作每次引入新类型的产品时,架构都会更改 .

如果您事先不知道需要支持哪种查询,那么关系模型可能也是一个问题 . 例如,如果您有一个过滤机制,允许用户从品牌“xyz”中搜索蓝色,尺寸较小的T恤,您可能需要动态创建SQL查询 . 这不是特别容易 .

EAV模型绕过了第一个问题,但不是第二个问题 . 实际上,即使对EAV数据模型进行简单查询也很难 .

我会考虑一种解决方案,其中将"known upfront"属性存储在SQL表(SKU,price,is_sellable,description等)中,以及关系(供应商,类别,仓库等) . 另一个可变数据可以存在于数据库中的JSON documents中 . 我会特别注意MySQL full text search indexing - 您可以使用它来代替"pure" SQL来运行许多常见查询 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值