Запрос дизайна базы данных - PullRequest
0 голосов
/ 18 марта 2010

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

Ответы [ 2 ]

3 голосов
/ 18 марта 2010

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

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 и sick_types.illness_type. В таблице sick_types вы можете хранить подробную информацию о типах болезней.

2 голосов
/ 18 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...