Re: Database Schema Manager

From: Date: Fri, 20 Jun 2003 19:39:15 +0000
Subject: Re: Database Schema Manager
References: 1 2  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-17599@lists.php.net to get a copy of this message
Wolfram Kriesing wrote:
i dont know if this is already part of what you will do, but here is just my idea. what do you think about splitting off the structure-thing into seperate packages. what i mean is to put the stuff that describes a db-structure and each table in a seperate class. so that you would have i.e. the two packages: DB_Structure with i.e. the following methods getTableNames() getRelations($table) - returns the relations the given table has to
    other tables using foreign keys
getRelatedTables() getTable($tableName) - returns an instance of DB_Structure_Table etc. ... DB_Structure_Table - works on one table and provides methods such as: getColumns() getType($column) getIndex() getPrimaryKey() ... i just had this idea while restructuring DB_QueryTool, and the SQL Renderer stuff, which should also be capable of joining tables automatically, by knowing the relations, which would be done "asking" external classes, such as the ones i mentioned above. and i can imagine that there will be many more use cases for that. hth wolfram
ah and i forgot, those classes might provide different container classes where to read the structure from. i.e. from an XML file, an array or directly from the DB, where of course can not provide all the information (such as relation info, etc.)
Lukas Smith wrote:
Hi, I am working on separating the Schema Manager in MDB into a separate package. The idea is that the new Manager will actually not require MDB anymore. Instead the main part of the manager is handling array structures that represent a schema. These array structures can be build up one by one, merged, compared etc. Also the Manager can call a parser or a writer to read or write a schema. I intent to provide the following parsers: - XML (old parser) - SQL (new) - MDB (old reverse engineering) and the following writers: - XML (new, used to be embedded in the manager) - SQL (new) - MDB (old default behaviour) There are all sorts of other parser and writers possible (someone else needs to decide if they are feasible enough to be implemented) like: - PEAR DB - WDDX - Excel - PDF - etc. Here is my preliminary work on the API: http://www.backendmedia.com/MDB/Manager/ I don't know yet how to name it. Basically the schema manager does not require MDB by default anymore. Actually it is possible to write a writer and/or parser for any database abstraction layer. So possible names are as follows: DB_Manager MDB_Manager DB_Schema_Manager MDB_Schema_Manager ... Regards, Lukas Smith smith@backendmedia.com _______________________________ BackendMedia www.backendmedia.com berlin@backendmedia.com Linn Zwoch Smith GbR Pariser Str. 44 D-10707 Berlin Tel +49 30 83 22 50 00 Fax +49 30 83 22 50 07
-- Wolfram http://opensource.visionp.de ... authentication system .... http://sf.net/projects/auth

« previous php.pear.dev (#17599) next »