2012-03-10 42 views
0

Amazon DynamoDB中定義了哪些常量?爲什麼AmazonDynamoDB :: TYPE_STRING或NUMBER?

有人可以請解釋這些常數的需要嗎? 爲什麼這些放在關聯數組的關鍵?

我把項目表像

'Name'  => array(AmazonDynamoDB::TYPE_STRING => 'Amazon S3') 

PHP SDK指南中看到一個奇怪的符號表示,4型常量。

  • TYPE_ARRAY_OF_NUMBERS
  • TYPE_ARRAY_OF_STRINGS
  • TYPE_NUMBER
  • TYPE_STRING
$dynamodb->batch($queue)->put_item(array(
'TableName' => 'Forum', 
'Item' => array(
    'Name'  => array(AmazonDynamoDB::TYPE_STRING => 'Amazon S3'), // Hash Key 
    'Category' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'), 
    // Range Key 
    'Threads' => array(AmazonDynamoDB::TYPE_NUMBER => '0') 
    ) 
)); 

回答

1

這些常數反映了四個可用Amazon DynamoDB Data Types

字符串 - 字符串是UTF8二進制編碼的Unicode。當屬性是主鍵的一部分時,將其分配給除 之外的屬性時,字符串大小沒有限制。 [...]

號碼 - 數字是正數或負數的精確值小數和整數。一些可在 小數點後具有精度爲38位,並且可以是10 10之間^ -128到+^126。 Amazon DynamoDB中的 表示形式爲可變長度。 [...]

字符串和數字集 - Amazon DynamoDB還支持數字集和字符串集。 [...]請注意,因爲它是一個 集合,集合中的值必須是唯一的。字符串集和數字集 未訂購;在一組中返回的值的順序不是 保留。

您需要在各種API調用中指定或處理這些數據類型,例如,對於KeySchemaCreateTable或看到你所提供的示例中,項目PutItem

0

的AWS PHP SDK的最新版本增加了方便的方法來幫助格式化你的要求更容易。請參閱docs for the attributes() method。例如:

$dynamodb->put_item(array(
    'TableName' => 'my-table', 
    'Item' => $dynamodb->attributes(array(
     'id'   => 1, 
     'key1'   => 'value1', 
     'key2'   => 'value2', 
    )) 
)); 

似乎用這種方式工作要容易得多。

相關問題