В первом варианте YAML обеспечивает отсутствие дублирующих идентификаторов. Поэтому редактор, поддерживающий YAML, может поддержать вашего пользователя, показывая ошибку в этом случае. При втором варианте вам нужно проверить уникальность в вашем коде, и пользователь увидит ошибку только при загрузке синтаксически правильного YAML в ваше приложение.
Однако есть и другие факторы, которые следует учитывать. Например, у вас может быть предпочтение к результирующим структурам данных в памяти. Если вы используете стандартные реализации YAML, которые десериализуются в собственные структуры данных (PyYAML, SnakeYAML и т. Д.), Структура YAML навязывает тип структуры данных в памяти (вы можете настроить ее, написав пользовательские конструкторы, но это не тривиально). Например, если вы хотите запросить у объекта набора данных его идентификатор, который можно напрямую выполнить только со второй структурой - если вы используете первую структуру, вам нужно будет найти в родительской таблице значение набора данных, которое необходимо получить для его идентификатора. .
Итак, окончательный ответ (как всегда): это зависит. Подумай, что ты хочешь с этим делать. Для простых файлов конфигурации мой второй аргумент может быть слабее моего первого, но я не знаю, что именно вы хотите сделать с данными.