Вы должны выбрать третий вариант, автоматически увеличивающийся идентификатор.
Почему?
Первичный ключ служит нескольким целям. Возможно, наиболее важным является то, что он однозначно идентифицирует каждую строку в таблице для ссылок на внешний ключ. Внешний ключ из одного столбца намного проще, чем составной внешний ключ - как с точки зрения определения ключа, так и с точки зрения производительности. Два столбца обычно занимают больше места, чем 1.
Это также имеет некоторые приятные преимущества. Это позволяет вам изменить конфигурацию или версию, связанную с каждой парой. Возможно, вы не хотите делать это сейчас. Но в будущем вы можете сказать: «Черт возьми, я хотел бы легко удалить версию». Или: «Эти два клиента объединились, и я хочу собрать их конфигурации».
Может также иметь смысл автоматически увеличивать конфигурацию. Я не уверен в этом. Чтобы назначить версию, вам потребуется триггер для сохранения порядкового номера для каждого конфига.