У меня такой тип игры:
type Game {
id: ID! @id
goals: [Goal]
}
которые имеют отношение Цели к:
type Goal {
id: Int! @id(strategy: SEQUENCE) @sequence(name: "IncID", initialValue: 1, allocationSize: 20)
thumbnail: String!
player: String!
minute: Int!
}
то, что я пытаюсь сделать с помощью этого беспорядка с «id», - это создать добавочное значение идентификатора для цели с целью создания URL-адреса для каждой цели, например:
domaine.com/game/{id-of-the-game}/goal/{incremental-id(1,2..)}
проблема в том, что тип цели выглядит как отдельная сущность, он сохранит последний увеличенный идентификатор, даже если это новая игра.
поэтому я хочу сбросить последовательность идентификаторов для каждой новой игры.


То, о чем вы просите, невозможно с помощью аннотации @id. Каждый тип в призменной модели должен иметь уникальный идентификатор для идентификации объекта в базе данных. Если используемой базовой базой данных является MongoDB, в ней будет коллекция целей с документами, каждая из которых представляет отдельную цель, идентифицированную идентификатором. Если в качестве базовой базы данных используется MySQL/PostgreSQL, цели будут храниться в таблице целей, где каждая строка представляет отдельную цель.
Каждый отдельный объект (независимо от того, хранится ли он как документ или строка) должен быть однозначно идентифицирован для доступа к нему и создания отношений, например. между объектами Goal и объектами Game.
Если бы идентификатор цели начинался с 1 для каждой игры, это нарушило бы уникальное ограничение для поля идентификатора, поскольку две цели в таблице или коллекции были бы идентифицированы одним и тем же идентификатором (например, 1).
Я бы предложил просто добавить что-то вроде поля «numberInGame» к типу цели и заполнить его при создании цели (например, принимая во внимание цели. длина в Game.type).
Надеюсь, что это помогло прояснить ограничение уникальности поля id.
Я использую postgres, и, делая то, что я пытаюсь сделать выше, будет несколько целей с одним и тем же идентификатором, что невозможно по определению. все, что мне нужно сделать, это создать еще одно поле для хранения возрастающего значения целей. это было глупо с моей стороны. спасибо пердокс.