Дизайн базы данных - когда разбивать данные на несколько таблиц? - PullRequest
0 голосов
/ 21 апреля 2010

У меня есть таблица животных:

Животные
Идентификационное имя
1 собака
2 кат
3 Кролик

У каждого животного есть портфель, поэтому у меня есть два метода определения таблиц базы данных.

СПОСОБ 1:

Портфолио
Id AnimalId Дата
1 1 01/01/2001
2 2 20/03/2009
3 3 05/03/2009
4 1 01/04/2005

МЕТОД 2:

DogPortfolio
Идентификатор даты
01.01.2001
2 01.04.2005

CatPortfolio
Идентификатор даты
1 20.03.2009

RabbitPortfolio
Идентификатор даты
1 05.03.2009

Какой метод предпочтительнее? Имейте в виду, что это надуманный пример, и в действительности я буду хранить ~ 10 тыс. Строк данных на портфель.

1 Ответ

1 голос
/ 21 апреля 2010

Я бы, конечно, пошел с методом 1.

Поскольку портфели одинаковы для каждого вида животных, то они должны быть в столе вместе. Если портфели собак отличаются от портфелей кроликов, вы можете рассмотреть что-то более похожее на метод 2.

Метод 1 также может быть расширен, так что вы можете добавить 1 строку

4 Рыба

и остальная часть структуры продолжает работать. При использовании метода 2 вам придется создавать таблицу (например, FishPortfolio) каждый раз, когда в таблицу животных добавляется строка.

Практически каждый раз, когда вы предлагаете решение, которое включает создание таблиц постоянного хранения во время выполнения, это ужасная идея.

Убедитесь, что вы включили в свои индексы и PortfolioID, и AnimalID.

...