Судя по всему у вас id это суррогатный PK. Есть есть уникальное поле field1, то держать в таблице суррогатный PK имеет смысл только ради удобства человека, в остальном он совершенно не нужен. С таблицей 2 ситуация аналогичная.
Как правильно организовать связь между таблицами?
Если один-ко-многим, то поля table1_field1 достаточно.
Будет ли разница между внешним ключом
О какой разнице речь? В такой формулировке как у вас, то нет, не будет.
id - цифровое, а field1 - строковое поле. Это может иметь значение?
field1 случайно не UUID? В большинстве случаев разницы не будет. Все равно на них вешать индекс.