2010-03-18 3 views
0

Я пытаюсь разработать разумный подход для проектирования базы данных, где мне нужно хранить широкий спектр постоянно изменяющейся информации о домашних животных. Категории данных могут быть разбиты на, например, на поведение, болезнь и т. Д. Данные будут представлены на регулярной основе в отношении этих категорий, поэтому мне нужно найти хороший способ разработки db для эффективного удовлетворения этого. Простой подход состоял бы в том, чтобы хранить несколько записей для каждого питомца в каждой соответствующей таблице - например, таблица поведения хранит данные о поведении и просто имеет временную метку для каждой записи вместе с идентификатором для этого домашнего животного. При запросе db было бы просто запросить одну таблицу с идентификатором pet, используя временные метки для вывода правильной истории представлений. Есть ли более разумный путь вокруг этого или это имеет смысл?Запрос на проектирование базы данных

+0

Подождите, вы что-то забыли .. – Roman

+0

Возможно, вы получите дополнительную помощь, если найдете время, чтобы принять лучшие ответы. Не делать этого - разочарование для многих людей. – northpole

+0

Верьте или нет, я действительно не знал об этом - извинения, теперь у меня есть учетная запись OpenID, поэтому я просмотрю свои предыдущие сообщения и исправлю их. – kenny99

ответ

3

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

Select * 
    from table_illness 
where table_illness.pet_id = <value> 
    and date between table_illness.start_date and table_illness.finish_date 

Вы можете сделать это для любой из таблиц. Таблицы поиска будут связывать между, например, table_illness.illness_type и disease_types.illness_type. Таблица болезней_types - это место, где вы будете хранить данные о типах болезней.

+0

Вот что я думал, спасибо за ответ – kenny99

2

При проектировании базы данных вы должны создавать свои таблицы для имитации реальных объектов или концепций. Поэтому в этом смысле дизайн, который вы предлагаете, имеет смысл. У каждого питомца должна быть своя запись в таблице домашних животных, которая не изменяется. Затем изменяемая информация должна быть помещена в соответствующую таблицу с идентификатором домашнего животного. Метод временной метки, который вы предлагаете, вероятно, я бы сделал - если, конечно, это не для ветеринара или чего-то еще. Затем я создаю таблицу встреч с датой и свяжусь с заболеванием или поведением с назначением.

Смежные вопросы