2015-02-10 22 views
6

Dynamo DB'yi kullanmaya çalışıyorum. Dynamo DB Tablolarını test etmeye çalışıyorum ama buna Yabancı Anahtar alamıyorum.DynamoDB'de nasıl yabancı anahtar atar?

+0

Tam olarak ne demek istiyorsun? DynamoDB ilişkisel bir veritabanı değildir. Gerçek probleminizin belirli bir çözümü sormak yerine ne olduğunu söylemelisiniz. Ayrıca, yukarıdaki yorumlarınız görüşmeye hiçbir şey eklemiyor. – mkobit

+0

Yabancı Anahtar Dynamo DB'de tanımlayalım mı? SQL Server'da –

+0

Yabancı Anahtar Gibi. –

cevap

7

DynamoDB'de yabancı anahtar bulunmamaktadır. Bu tür ilişkisel verileri desteklemeyen bir NoSQL veritabanıdır. Tablolar arasında veri bütünlüğü korunmamıştır, bu nedenle bu tür davranışlar yerleşik değildir. Bu tür bir davranışa sahip olmak istiyorsanız, veri depolamanızı DynamoDB'de farklı bir şekilde modellemeniz gerekecektir. Tüm birşey

Amazon DynamoDB veritabanı ölçeklenebilirlik, yönetim, performans ve güvenilirliği temel problemin üstesinden birlikte, kapsamaz: FAQ itibaren

o bir ilişkisel veritabanı olmadığını açıklayan ilişkisel bir veritabanının işlevselliği. , karmaşık ilişkisel sorguları (örn. Birleştirmeler) veya karmaşık işlemlerini desteklemez. İş yükünüz bu işlevselliği gerektiriyorsa veya varolan bir ilişkisel motorla uyumluluk için 'u arıyorsanız, , Amazon RDS veya Amazon EC2'de ilişkisel bir motor çalıştırmak isteyebilirsiniz. ilişkisel veritabanı motorları sağlam özellikler ve işlevler sağlarken, tek bir ilişkisel veritabanı örneğinin ötesindeki bir iş yükünü ölçeklendirmek oldukça karmaşıktır ve önemli ölçüde zaman ve uzmanlık gerektirir.

+0

bu soruyla ilgili olarak - başka bir tablodaki “Users.id”, başka bir tabloda “Payments.id” deyince, bir başka tablonun hash anahtarını kullanmak iyi bir fikirdir. = Users.id' Dynamo'da haritalama gibi bir yabancı anahtar oluşturmak ve doğrudan sorgulamaya izin vermek için? Görebildiğim tek şey, Payments.userId adını vermediğiniz ve bunu hash anahtarı olarak ayarlamadığınız, ancak daha sonra Payments.Id, Users gibi hash anahtar indekslerini adlandırırken tüm DB'leriniz arasında tutarlılık kaybettiğiniz sürece kendi kendini belgelememesidir. Kimlik, Cüzdan, Kimlik, vb. – anon58192932

+1

Küresel ikincil dizinlerle ilişkiler gibi yabancı anahtarlar alabileceğinizi fark ettim ve taramayı ve filtrelemeyi önlemek için sıralı bir yabancı anahtar gerekiyorsa, global bir aralık anahtarı ekleyebilirsiniz. ikincil indeks Bu, yine de, her bir ayrı tablo için benzersiz ID'leri korumanıza izin verirken, aynı zamanda, bir yabancı anahtarın, sorgulanabilirlik gibi eklenmesi ve ayrıca>, <, <=, > =, ve! Gibi otomatik sıralama ve anahtar durumu ifade karşılaştırma işlemleri olan aralık anahtarları hakkında en iyi bölümü korumanıza izin vermelidir. =. – anon58192932