Как лучше всего отобразить эту структуру на amazon SimpleDB - PullRequest
0 голосов
/ 17 декабря 2010

Таким образом, у simpledb есть своего рода модель данных электронной таблицы.

У меня есть приложение, которое просто должно хранить ключи и значения. За исключением того, что один ключ может иметь несколько значений.

Будет несколько клиентов. У каждого клиента есть идентификатор с собственным набором ключей. Я хотел бы придерживаться одного домена, если смогу на этом этапе.

Как я могу отобразить это на simpleDB?

Я думал домен = мойдомен пункт = клиентура attribute.n.name = key_1 ... key_n attribute.n.value = val1 ... valn

Это удовлетворит способность хранить несколько значений для одного и того же ключа. Но потом я обнаружил, что мне нужно либо получить ВСЕ атрибуты в моем примере выбора, либо знать сколько у меня атрибутов. Я не буду знать это заранее. Также я разрешаю удалить конкретное значение из ключа (или атрибута). Я должен буду искать это сначала. Кажется, что в select нет функции attributeName (), только функция itemName ().

Возможно, было бы лучше сделать имя элемента комбинацией id + key + _n? например если идентификатор «myid», а ключ «boots», то имя элемента будет 'Myidboots_1'

И затем иметь по одному атрибуту для каждого элемента, который называется скажем 'keyval'.

и я могу сделать выберите 'keyval', где itemName, например, 'myidboots_%'?

Все еще довольно громоздко по сравнению с обычной базой данных sql.

Может быть, мне следует попробовать закодировать значения в виде списка через запятую? За исключением того, что это, вероятно, более громоздко, а также я прочитал, что есть ограничение в 1000 символов.

Есть еще предложения?

1 Ответ

0 голосов
/ 25 мая 2011

Я не уверен, что полностью следую вашему вопросу, но я думаю, что было бы полезно указать, что SimpleDB позволяет вам выполнять запросы в классическом стиле SQL, такие как:

select * from foo where bar = '1'

Это вернет все атрибуты/ значения для результирующих записей.

...