Meta-DBD's, Data Dictionary and Roles
Jens Rehsack <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Merijn,
I thought a bit about your data dictionary goals together with my
goal to can join between CSV-tables and DBD-tables (etc.).
I kept in mind, that backward compatibility is a major requirement.
We will have a problem to migrate existing tables into the new
data dictionary. Maybe I found a way out ...
1) Our Meta-DBD's will support methods 'init_valid_attrs ()' and
'init_default_attrs ()' (most of them do it now).
2) Currently, DBD::File provides the storage and the derived DBD's
provide some kind of parser.
If we could clarify this a bit better (AnyData has a similar
internal design and could need some abstraction help from DBD::File),
we should be able to provide different storage backends.
3) DBD::CSV and DBD::DBM are very simple now - most of the code is
abstracted in DBI::DBD::SqlEngine and DBD::File. The remaining
code is mostly "parser" related (AnyData point of view).
We should be able to rewrite DBD::File, DBD::CSV and DBD::DBM
to have their parser code and attribution code in some role 'classes'.
Using another Meta-DBD based on DBI::DBD::SqlEngine, those roles
could be aggregated and the appropriate table could be initialized.
Because we are starting fresh here, we can build data dictionaries
from the beginning - no need to migrate anything.
How does it sound?
Best,
Jens