• Kim: just for posterity, no, all the joins in the database have identical data types on each side.

    The two different ID types reflect only that some tables might conceivably be required to generate more than int32.MaxValue records (noting that removal and regeneration of records when generating for example costing figures is quite frequent).