在我的应用程序中,我遇到了一个数据库设计,我需要考虑以下几点:
请帮助我采取任何其他方法来保存数据库中的键值对。并且将来更新密钥名称及其值可以被跟踪,以便我可以更新它。
示例:
已定义模板。在此模板中,有一些未知属性,应由客户端更新以执行它。
假设一个属性是“## 路径 ##”。这里路径应该用实际路径替换。
因此,我们必须从模板中找出所有这些属性,并在UI中显示为表格(键 - >路径,值 - > [空文本框])。用户可以针对此路径设置值。我们必须保存它以备将来使用,因为用户可以重新触发它。
但在重新触发之前,他可以将密钥从“## 路径 ##”更改为“## ActualPath ##”。在这种情况下,我需要找出“实际路径”是“路径”的更新名称,这对我来说非常困难。
答案 0 :(得分:1)
它看起来很紧张;我的意思是我真的不明白你究竟是什么问题。你回答了自己的问题。
创建一个像这样的表:
KVPTable
Key, VARCHAR(whatever), PrimaryKey
Value, VARCHAR(whatever)
由于Key
是主键,因此不允许重复输入。您可以对Key
执行UPDATE语句以更新任何或两个字段。
UPDATE KVPTable SET Key = 'newKey' WHERE Key = 'oldKey'
UPDATE KVPTable SET Key = 'newKey', Value = 'newValue' WHERE Key = 'oldKey'
UPDATE KVPTable SET Value = 'newValue' WHERE Key = 'key'
这将确保只更新一条记录。在调用statement之前,您可以执行另一个SELECT语句来检查是否已存在新的Key
。即使你没有检查它,也会引发异常,你应该抓住它。