Я бы, конечно, пошел с методом 1.
Поскольку портфели одинаковы для каждого вида животных, то они должны быть в столе вместе. Если портфели собак отличаются от портфелей кроликов, вы можете рассмотреть что-то более похожее на метод 2.
Метод 1 также может быть расширен, так что вы можете добавить 1 строку
4 Рыба
и остальная часть структуры продолжает работать. При использовании метода 2 вам придется создавать таблицу (например, FishPortfolio) каждый раз, когда в таблицу животных добавляется строка.
Практически каждый раз, когда вы предлагаете решение, которое включает создание таблиц постоянного хранения во время выполнения, это ужасная идея.
Убедитесь, что вы включили в свои индексы и PortfolioID, и AnimalID.