Как сохранить целостность данных?
1. Используйте для уникального идентификатора и связей суррогатные ключи. Это спасет вас от множества проблем несовершенности реального мира.
2. У каждого животного делайте номер бирки и id фермы, из двух этих полей сделайте составной уникальный ключ.
3. Сделайте таблицу ферм, id фермы + доп.поля, название, адрес, координаты и т.д.
Может быть нужно добавить еще один столбец с названием фермы ?Именно. Только не с названием, а с идентификатором. И сделать составной первичный ключ (id_фермы, id_бирки).