我正在寻找一种在MySQL Style数据库中存储JavaScript对象的方法。
我想让数据库设置来处理对象,它们的属性,甚至是对象引用。
给我以下语法:
<object> := list of atributes
<attribute> := integer
| string
| boolean
| object-reference
| list of attributes
这样做是否有一种标准的方式或最好的实践?
我想使用数据库布局来启用基于属性值的过滤。
答案 0 :(得分:1)
您发现难以存储对象的原因是Object Relational Impedance Mismatch
面向对象的范例基于成熟的软件工程 原则。然而,关系范式是基于证明的 数学原理。因为两者的基本范式不同 技术无法无缝协同工作。
阻抗不匹配变得明显 当您查看首选访问方法时:使用该对象 范式你通过他们的关系遍历对象,而与 关联范例,你加入表的数据行。
如果您遇到关系数据库,则必须在对象模型和关系模型之间执行映射。如果您决定以您描述的方式存储对象,则可能需要更改为Object Database
我已阅读Agile Database Techniques,其中涵盖了此主题,但我确信还有很多其他内容。网上也有很多信息。
答案 1 :(得分:0)
据我所知,mysql是一个关系数据库。它不支持以您需要的方式存储对象。您只需序列化对象并存储它。无法访问属性等操作。但是除了mysql之外,我还记得在Google上点击处理对象的其他数据库引擎。 Object Databases on Wikipedia