I am designing No-SQL DB schema for an online e-learning platform, plan is to store it in the AWS DynamoDB.
As of now, I am thinking of the schema as mentioned in the screenshots below:
But I am just thinking from the item size limit wise, if in future a single user bought many courses or if a single course has many modules and videos in it which can automatically increase the item size in the AWS Dynamo DB which is maxing 400KB, I have seen blogs suggesting to split up the item, but wanted to check here for your inputs as well. So my questions are
DB schema wise is it fine the way that I am thinking?
What could be the better way when the entries are many and the item size is large?
I am also exploring GraphQL, so that calls will have less latency from the front end, but the worry is about the DB design and large items.
Please let me know if anyone has their thoughts or valuable suggestions on this. Thanks in advance.