title: database schema object abstraction
body: <p>I am creating abstraction of database schema using object oriented programming. I have a design issue: should indices be top-level objects (like tables, view, stored procedures) or rather should be accessible through a table, like columns? What about triggers too?</p>
  
  <p>I am building a python package (http://code.google.com/p/fathom/) for database schema discovery. Right now indices are accessed through table, but I see that some tools for administering database have indices as separate entry in some tree view, just like tables. That's why I am wondering, If I am doing it right.</p>