> > You've just described a wiki - one example of a wiki that is written in > > PHP and MySQL is http://tavi.sourceforge.net. The code is a little > > spaghetti-like, but you should be able to look through the database schema > > to understand how they implement the multi-user text editing, and how to > > handle the related problems of locking and revision control. > > Wow, confusing code - but i think i got the idea. Just one thing: After > reading the code, it seems to me that every time someone makes a change > to a record, a new row is inserted into the DB with the full text of the > edited record - not just the changes. I saw that there was an automatic > expiration function, but still, wouldn't it be a drag for the server?
Yeah, that's what happens. I think it's only a problem if you're storing truly stupendous amounts of text, and then it's just a storage problem - drives are cheap. If anything, storing the changes only would probably be a bigger processor load, since viewing any one page would mean having to reconstruct the content from all previous versions. This way, the overhead of a diff is only incurred when you want to view changes to a file between two given versions. I think the rationale behind CVS storing just diffs is that it has branches and merges, while wiki text generally does not. Also (conjecture) it may be a historical legacy of RCS, from a time when storage was not quite so cheap. --------------------------------------------------------------------- michal migurski- contact info and pgp key: sf/ca http://mike.teczno.com/contact.html -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php