I would start by writing down what you believe the database consists of:
1. The table structures -- write them down, commit them to paper.
2. The relationships you believe exist between the tables. Document them
in writing and visually. Use whatever tool works for now -- don't make
the mistake of allowing the tools to stand in the way of proper
documentation. Use Visio (I know it isn't Linux or open source, but most
people can master it fast.) Or just use pen, paper, ruler, and a nice
old fashioned programmer's symbol template -- the kind that is made of
plastic. (I actually used them for many years.) The point is, commit
your knowledge to paper.
Now look at the code components.
1. Print and organize all the code that exists.
2. Study the code; determine how each component relates to the others.
Diagram this program flow as above for the tables. Don't let lack of
software stop you. Pen and paper is better than exactly nothing.
You may have to experiment with the code to determine the processing
flow. Almost certainly you will, in fact.
As to learning MySQL and PHP, there is really only one good technical
writer for MySQL: Paul DuBois. His book MySQL 3rd edition is a
must-read. But even Paul is not a magician; you can't learn MySQL from a
book alone. You need Paul's book, and the willingness to practice
working with MySQL. Make yourself a user account, give yourself
privileges on a play database, open his book, and go for it.
Of the various PHP writers, I really have great respect for Tim Converse
and Joyce Parks. I suggest getting their excellent book on PHP 5. It's a
shame they don't cover PHP 5.1, but get the book anyhow and play with
it. As with MySQL, don't just read the book: start writing your own PHP
code and playing with it.
Jeffrey Goldberg wrote:
> This is probably a FAQ, but I haven't been able to find the answer.
> Briefly, I am looking for tools that will help me document a database.
> Visualization would be nice too, so that I could quickly see the
> relations between tables.
> Less briefly. I am new to MySQL, SQL in general and databases. I have
> inherited a project that uses, Apache, PHP, and MySQL. The MySQL Press
> book, MySQL Tutorial has been extremely helpful.
> My predecessor, who did know something about MySQL, left no
> documentation. As I am trying to figure out what is what and what the
> relationships are between tables, I've got paper and pencil pictures,
> and a text file full of notes. But, mostly it is just an understanding
> -- for the parts that I understand -- in my head. Now I can always
> redraw my paper and pencil stuff with something like xfig, but it
> struck me that there is probably a standard, well conventional,
> notation for this kind of thing and tools for the purpose.
> I'm a bit of a geezer and my memory isn't as reliable as it used to
> be. Plus, I don't want any successor on this project to curse me quiet
> as vehemently as I curse my predecessor.
> So advice or pointers to advice would be very welcome. As for tools,
> I'd be looking for things that can run on Unix systems (GNU/Linux and/
> or OS X). If I've hit the wrong list, I sure someone will tell me
> where to go.