login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Verschillen tussen tekst + vragen

Offline Voldemort - 01/04/2007 11:45
Avatar van VoldemortPHP ver gevorderde Hallo iedereen,

Ik ben van plan een wikipedia achtig systeem te maken (enkel voor m'n eigen site). Hierover heb ik 2 vragen:

1) Is het best om alles in de database te stoppen (veel tekst), of weg te schrijven naar bestanden. Zelf dacht ik aan een combinatie, informatie over het artikel in de database (id, titel, rechten, ...) en het artikel zelf weg te schrijven naar een bestand. Wat raden jullie me aan?

2) Op Wikipedia kan je de verschillen tussen verschillende versies van het artikel zien. Nu wil ik ook zoiets, alleen, hoe moet dit?

3) Wat is het verschil tussen MyISAM en InnoDB? Welke is best?

9 antwoorden

Gesponsorde links
Offline santacrack - 01/04/2007 12:45
Avatar van santacrack Nieuw lid 1) Ik zou alles in een DB stoppen zodat je ook nog kan zoeken!
2) Dit kan ook beter met een Database
3) Verschil weet ik niet, maar ik gebruik MyISAM en ik ben tevreden!!
Offline Rik - 01/04/2007 13:16
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
1) Alles in een database zetten lijkt mij ook het beste. Daar kan je zoals santacrack al zegt makkelijk in zoeken. Updaten gaat daar ook makkelijker in. Een database is gemaakt om data op te slaan, dus waarom zou je bestanden gebruiken?

2) Op wikipedia is dat erg uitgebreid met reacties en verbeteringen en al dat soort dingen. Ik zou er een paar tabellen voor maken:
- tekst: alleen het id en de tekst
- informatie: id van het artikel, informatie over het artikel, url ernaar, id van de 'standaard' tekstversie ..
- notities: id van het artikel, id van de plaatser van de notitie, tijd, notitie zelf, ...
- tekst_versies: id naar een tekst, tijd van plaatsen, id van degene die iets heeft veranderd
Met een query kan je dan kijken welke tekst getoond moet worden en die inclusief wat informatie er uit halen.
Als je dit met bestanden moet doen heb je echt heel veel werk om te kijken wat bij wat hoort.

3) Weet ik niet, maar ik heb twee vergelijkingen gevonden:
http://wiki.dre...oDB_tables
http://dev.mysq...art_3.html

Succes ermee!
Offline Voldemort - 01/04/2007 15:30
Avatar van Voldemort PHP ver gevorderde 1) Ok, dan stop ik alles in de database.
2) Dit kan dan wel beter met de database, maar hoe moet ik het doen?
3) MyISAM lijkt me het beste zo te zien. Ik ben er overigens ook tevreden met.
Offline Dark_Paul - 01/04/2007 15:39 (laatste wijziging 01/04/2007 15:41)
Avatar van Dark_Paul PHP ver gevorderde MySQL geeft zelf ook informatie over het verschil tussen InnoDB en MyISAM..

Edit
Via PhpMyAdmin kon ik de storage-engines van MySQL opvragen:
Storage Engine: Beschrijving:
MyISAM Default engine as of MySQL 3.23 with great performance
MEMORY Hash based, stored in memory, useful for temporary tables
InnoDB Supports transactions, row-level locking, and foreign keys
BerkeleyDB Supports transactions and page-level locking
BLACKHOLE /dev/null storage engine (anything you write to it disappears)
EXAMPLE Example storage engine
ARCHIVE Archive storage engine
CSV CSV storage engine
ndbcluster Clustered, fault-tolerant, memory-based tables
FEDERATED Federated MySQL storage engine
MRG_MYISAM Collection of identical MyISAM tables
ISAM Obsolete storage engine

Niet zo netjes in een tabel als het origineel, wel handig.
Offline Ibrahim - 01/04/2007 16:30
Avatar van Ibrahim PHP expert MyISAM is voor databases met full text ondersteuning
Offline Voldemort - 02/04/2007 10:22 (laatste wijziging 03/04/2007 09:07)
Avatar van Voldemort PHP ver gevorderde Ok, ik heb een database structuur uitgedacht die bij elke wijziging een nieuwe row invult met de nieuwe tekst, zo blijven de oude ook bestaan. Alleen, hoe kan ik de verschillen tussen 2 pagina's vinden (dus tussen die 2 rows in die tabel), hoe maak je zoiets?
Offline Dark_Paul - 03/04/2007 11:35
Avatar van Dark_Paul PHP ver gevorderde Datum erbij zetten? En de row met de meest recente datum is de laatste wijziging.
Offline Voldemort - 03/04/2007 15:55 (laatste wijziging 04/04/2007 14:16)
Avatar van Voldemort PHP ver gevorderde @Dark_Paul: Ga naar Wikipedia, doe "geschiedenis" bovenin en klik dan op "Vergelijk de aangevinkte versies". Zoiets bedoel ik, hoe maak je zoiets?
Offline Ibrahim - 06/04/2007 14:06
Avatar van Ibrahim PHP expert Ik zou niet weten hoe je het maakt, maar je kunt het wel zo goed mogelijk proberen na te maken.

Je zou elke wijziging in een andere record zetten, elk geef je een id waarmee je ze kunt koppelen.

Je haalt alle records eruit met dezelfde idnummer. Die ga je dan exploden op spaties oid. Dan kijk je of elke array entry hetzelfde is. Is die niet hetzelfde, dan weergeef je de verandering in bold. Anders blijft ie hetzelfde.

Zo ongeveer zou je het kunnen doen. Er is vast een makkelijkere manier, maar totdat je die manier vind, is dit de beste oplossing 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s