在关系型数据库中存储键值对
在关系型数据库中存储键值对时,请考虑以下方法:
方法一:专用键值表
<code class="language-sql">CREATE TABLE key_value_pairs ( itemid varchar(32) NOT NULL, itemkey varchar(32) NOT NULL, itemvalue varchar(32) NOT NULL, CONSTRAINT ct_primarykey PRIMARY KEY(itemid, itemkey) );</code>
此方案允许轻松插入和检索键值对,但由于需要组合多行,查询变得复杂。
方法二:一系列键值列
<code class="language-sql">CREATE TABLE key_value_pairs ( itemid varchar(32) NOT NULL, itemkey1 varchar(32) NOT NULL, itemvalue1 varchar(32) NOT NULL, itemkey2 varchar(32) NOT NULL, itemvalue2 varchar(32) NOT NULL, ...等等... );</code>
此方法简化了查询,但由于必须预先确定列数,因此限制了可扩展性。
其他考虑因素
在选择方法之前,请考虑在关系型数据库中存储键值对的缺点:
通常,为每个域(例如,颜色、尺寸、面料)创建单独的表更有优势。这提供了更好的引用完整性、更高的性能和更大的灵活性。
以上是如何在关系数据库中最好地存储键值对?的详细内容。更多信息请关注PHP中文网其他相关文章!