зря вы искусственно ограничиваете типы договоров - а если будет договор обмена или долевого выкупа или еще что - будете новую базу клепать?
лучше всего формулу расчета сумм по договору привязывать к конкретному типу договора
например
tblAgreements
AgreementID - код договора
AgreementTerms - условия договора
AgreementTypeID - тип договора
tblAgreementTypes
AgreementTypeID - код типа договора
AgreementType - тип договора
CalculateScheme - схема расчета сумм (алгоритм)