0

所以 simpledb 有一种电子表格数据模型。

我有一个应用程序,只需要根据值存储键。除了一个键可以有多个值。

会有多个客户。每个客户端都有一个带有自己的密钥集的 id。如果可以的话,我想在这个阶段坚持使用单个域。

如何将其映射到 simpleDB?

我在想 domain = mydomain item = clientid attribute.n.name = key_1 ... key_n attribute.n.value = val1 ... valn

这将满足为同一个键存储多个值的能力。但后来我发现我需要在我的选择中获取所有属性,或者知道我有多少属性。我不会事先知道这一点。我还允许从键(或属性)中删除特定值。我将不得不先搜索它。似乎在 select 中没有 attributeName() 函数,只有 itemName() 函数。

将项目名称设为 id + key + _n 的组合会更好吗?例如,如果 id 是“myid”并且键是“boots”,那么项目名称将是“myidboots_1”

然后每个项目都有一个属性,称为“keyval”。

我可以选择 'keyval' where itemName like 'myidboots_%' ?

与普通的 sql 数据库相比,仍然有点麻烦。

也许我应该尝试将值编码为逗号分隔列表?除了它可能更麻烦而且我已经读到有 1000 个字符的限制。

还有其他建议吗?

4

1 回答 1

0

我不确定我是否完全遵循您的问题,但我认为指出 SimpleDB 允许您执行经典的 SQL 样式查询可能会有所帮助,例如:

select * from foo where bar = '1'

这将返回结果记录的所有属性/值。

于 2011-05-25T19:50:48.657 回答