Я новичок в DynamoDB и изо всех сил пытаюсь создать хороший ключ раздела.Я читал, что хороший DynamoDB использует ключ раздела с почти различными значениями.Тем не менее, я подумал, смогу ли я использовать DynamoDB только с ~ 10 (разными) значениями для ключа раздела, если я всегда могу использовать ключ сортировки в качестве уникального идентификатора (например, не начинается с).Буду ли я сталкиваться с проблемами с этим подходом?
Мои проблемы (ы) выглядит так:
1.Допустим, я хочу визуализировать комнаты в нескольких домах .В каждой комнате есть устройства IoT, которые должны быть видны в виде «карты комнаты». Визуализация выполняется и хранится в формате json локально на данный момент.Я хочу сохранить эту конфигурацию в DynamoDB.Мой ключ раздела будет дома , а ключ сортировки будет префиксом с roomMap_, за которым следует имя комнаты (разумеется, уникальное для ключа раздела)
| partition key | sort key | room map json |
|---------------|---------------------|---------------|
| House1 | roomMap_livingRoom1 | {...} |
| House1 | roomMap_livingRoom2 | {...} |
| House1 | roomMap_kitchen | {...} |
| House2 | roomMap_livingRoom1 | {...} |
2.Теперь я также хочу хранить информационные панели для устройств IoT в DynamoDB. Идентификаторы устройств уникальны для дома (по дизайну), но могут быть такими же в других домах .Например, устройство 'fridgeSensor' может существовать более чем в 1 доме.Конфигурация приборной панели также сохраняется как json.
| partition key | dashboard config json |
|----------------------------|-----------------------|
| House1::fridgeSensor | {...} |
| House1::temperatureSensor1 | {...} |
| House2::fridgeSensor | {...} |
Когда я читал, что в хорошем дизайне DynamoDB используется только 1 таблица Я подумал о следующей таблице, используя PartitionKey первого дизайна таблицы, и адаптировал ключ сортировки:
| partition key | sort key | room map json | dashboard config json |
|---------------|---------------------|---------------|-----------------------|
| House1 | roomMap_livingRoom1 | {...} | null
| House1 | roomMap_livingRoom2 | {...} | null
| House1 | roomMap_kitchen | {...} | null
| House2 | roomMap_livingRoom1 | {...} | null
| House1 | device_fridgeSensor | null | {...}
| House2 | device_fridgeSensor | null | {...}
Теперь я часто читаю один и тот же ключ раздела. Это плохой дизайн? И если да, как я могу сделать лучше?