У меня есть крайний случай, который я надеюсь разрешить.
Мы публикуем спортивный отчет, в котором, помимо прочих статистических данных, записываются результаты бокс-бокса, в которых может участвовать соперник, не участвующий в чемпионате / не в составе.Под этим я подразумеваю, что в некоторых случаях у противника Foo нет списка (и он никогда не будет) в нашей системе.
Вместо того, чтобы просто пропустить какие-либо характеристики для команды противника, владелец давно попросил нас построить- в опции, позволяющей вводить имена игроков (вместо выбора [playerID] из выпадающего списка имен игроков для существующего списка).Итак, наша таблица содержит PK-столбец int playerID, а наши таблицы статистики (нападение и защита) содержат столбцы varchar playerID.
Это позволяет нам выполнить внешнее соединение с таблицей и получить соответствующие записи, независимо от того,Реестр команд существует или нет (если нет, мы просто распечатываем таблицу статистики игрока varchar в качестве имени игрока).Взломан наверняка, но выполняет свою работу.
Теперь у меня есть FK в таблице результатов в таблице статистики, поэтому, если результат игры удален, связанные характеристики также.Однако мы упускаем важное ограничение: ростер >> статистика.Поскольку типы столбцов playerID не совпадают, я не могу добавить FK, который мне нужен, чтобы заполнить пробел в ограничениях (т.е. удалить игрока из реестра, и все его / ее характеристики будут осиротевшими, что не очень хорошо).
Есть идеи, как обойти это?