我想在数据库中存储条目(一组键=>值对),但是键因条目而异.
我想用两个表存储,(1)每个条目的键和(2)每个条目的特定键的值,其中条目在两个表中共享一个公共id字段,但是我不确定如何拉带有此类配置的sql中的键=>值对条目.
有没有更好的方法?如果在sqlite中不可能,在mysql中有可能吗?谢谢!
解决方法:
听起来您正在寻找Entity-Attribute-Value model.
替代方法是为不同类型的实体创建不同的表,或者为每个可能的键创建一个带有列的表,然后为没有该键的实体将值设置为NULL.
您可能想看一下Bill Karwin的演示文稿SQL Antipatterns,其中他介绍了EAV模型的一些优缺点,并提出了可能的替代方案.相关部分从幻灯片16开始.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!