Vorrei aiutarti, ma credimi la tua esposizione del problema è talmente ricca di parole codice-codice-codice che non si riesce a capire il bandolo della matassa.
1) Potresti essere più preciso nell'indicare esattamente i campi Chiave primaria di ogni tabella?
2) Quando dici che CodiceOfferta è collegata a CodicePratica non si capisce bene attraverso quale campo di partenza e di arrivo. La relazione, poi, è uno-a-molti?
3) Se ti appare un messaggio "tentata duplicazione dell'indice" vuol dire che vuoi dare un significato non univoco a quel campo che di conseguenza deve rinunciare ad essere il campo Chiave primaria oppure Indice Duplicati non ammessi.
4) Le parole Codice... sempre attaccate al nome di una tabella o di campo ha un significato da ID (quindi univoco), oppure un significato più generico? Es. la tabella CodiceOfferta ha un campo IDCodiceOfferta e un campo CodiceOfferta...non voglio modificare il tuo database, ma non si potevano chiamare più semplicemente tabella Offerta, IDOfferta e Offerta? Oppure, scusami ancora, CodiceOfferta è una Offerta descritta in quel campo sotto forma di codice?
Scusa se mi ripeto anch'io, non vorrei mai sembrare offensivo, cerco solo di aiutarti.