#database #oop #schema
#База данных #ооп #схема
Вопрос:
Я создаю абстракцию схемы базы данных, используя объектно-ориентированное программирование. У меня проблема с дизайном: должны ли индексы быть объектами верхнего уровня (например, таблицами, представлением, хранимыми процедурами) или, скорее, должны быть доступны через таблицу, например столбцы? А как насчет триггеров тоже?
Я создаю пакет Python (http://code.google.com/p/fathom /) для обнаружения схемы базы данных. Прямо сейчас доступ к индексам осуществляется через таблицу, но я вижу, что некоторые инструменты для администрирования базы данных имеют индексы в виде отдельной записи в некотором древовидном представлении, точно так же, как таблицы. Вот почему мне интересно, правильно ли я все делаю.
Комментарии:
1. Можете ли вы объяснить причины, по которым вы не используете ORM?
2. @Neil: Я задал вопрос, должен ли я попробовать сделать это в programmers.se.com . Теперь я спрашиваю о чем-то другом. @Paul: Смотрите мою правку.
Ответ №1:
«Индексы» являются частью одной таблицы, такой как «столбцы», они не являются независимыми, как S.P., где разработчик может изменять несколько таблиц.
Они состоят из нескольких столбцов или выражений из одной таблицы.
С другой стороны, я согласен, что иногда это сбивает с толку. Многие инструменты устанавливают отношения между таблицами как зависящие от одной таблицы, и я предпочитаю рассматривать отношения как элемент базы данных, а не как отдельную таблицу, прямо противоположную «индексам».