2

I'm experienced in RDBMS, but new to NoSql. This aws dynamodb design advice says that "most well designed applications require only one table". I'm trying to wrap my head around that. I don't see a useful single-table solution for anything but a completely trivial application.

Please tell me that they are wrong or that they are right. If you agree that they are right, I'll give an example of requirements and ask how it would be resolved in one table.

Thanks.

  • What they might be referring to is that you can store a document or mapped object in dynamo that allows you to mimic a relational structure without actually storing it in a matching schema. One of the main limits that I find is the flexibility of searching in that stored document and the fact that each column and row have data caps on them. So if you are always working with storing and retrieving rows by they key it has a huge performance benefit, but if you are searching based on the other columns you either have to index on them or a table scan is required. Both can be costly. – Aaron Apr 14 '18 at 20:16
  • Thanks for responding . I want to know whether I can trust these aws "best practice" documents vs. read about nosql elsewhere. Here's a scenario: a simple app that takes orders for parts. I can't see how to avoid having a table of parts. Then, how would one represent customers? Especially, how would you represent a customer who has not yet ordered any parts? – Elroy Flynn Apr 14 '18 at 23:54
  • I’m not sure what you are reading elsewhere. I can only say based off of there only example they get a way with the one table by ensuring that what would normally be a foreign keys in a table are globally unique so the record can be inserted into the same table and as you return one record you business logic would determine of the data in that row what parts need another trip to the table to get more data. That is where they point to understanding the access pattern to build your entity model so you can find what should be your primary and secondary keys should be – Aaron Apr 15 '18 at 16:47
  • Since my OP, I had an email exchange with the technical writer at AWS who is responsible for the referenced article. He was responsive and courteous - nice guy. He said that the developer opinion there is strong, "even fervent" on this point. He will be rewriting some of AWS own DynamoDb tutorials to provide a single-table solution. I look forward to seeing that. – Elroy Flynn Apr 22 '18 at 3:13
  • @ElroyFlynn that is a very interesting response. I would love to see an elaboration on how they would be a single table db for a complex application. Do you know if that example has been published? I've been looking around the developer docs and the examples seem relatively simple. – Chris Paton Jul 27 '18 at 16:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.