Database of file?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Hogeveen

Mark Hogeveen

06/06/2013 16:51:53
Quote Anchor link
Hallo ik heb een soort systeem waar je de instellingen van kunt aanpassen. Ik wilde eerst gewoon de instellingen opslaan in de database, maar nu ben ik aan het denken om de instellingen gewoon in een bestand op te slaan.
Dan werken de instellingen ook nog zelfs als er een fout is met de database.

Het zijn bijvoorbeeld de instellingen zoals inloggen aan/uit en dat soort dingen.
Het kost ook meteen minder query's als ik het in een bestand zet.
De instellingen moeten wel nog kunnen worden aangepast.
Als je 10 instellingen hebt, kun je daar een database tabel voor maken en dan per kolom de instellingen aanpassen. Het is dan wel moeilijker om er een optie bij te zetten, omdat dan de indeling van de kolommen moet worden aangepast.
Als je per rij werkt, dus elke instelling een aparte rij. Dan kun je het makkelijker uitbreiden. Maar dat heeft weer als nadeel dat je bijvoorbeeld dit krijgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Instelling naam      |      Waarde
-------------------------------------------
Login on             |       1
Site email           |       [email protected]
Site naam            |       Naam
Welcome message      |       Welkom.... Lange tekst..........

Dan zou de kolom met de waarde nummers en tekens door elkaar moeten hebben. En dan heb je ook nog dat een waarde soms een hele tekst kan zijn.
Als ik het in een file zet moet ik wel bijvoorbeeld een functie maken die het weer kan lezen.
Ik kan de instellingen in een ini file zetten, en met een functie de ini file aanpassen. En de file lezen met parse_ini_file()
Of gewoon de instellingen in een array zetten en een PHP bestand genereren dat je kunt lezen door het te includen.
Wat is jullie advies?
Gewijzigd op 06/06/2013 16:54:04 door Mark Hogeveen
 
PHP hulp

PHP hulp

28/03/2024 18:01:09
 
Ozzie PHP

Ozzie PHP

06/06/2013 18:29:15
Quote Anchor link
Ik denk dat je jezelf misschien eerst moet afvragen of je van plan bent om je settings vaak te veranderen. Als dat niet het geval is, dan kun je ze in een bestand zetten. Als het wel het geval is dan kun je ze in een database zetten en bijv. een cms maken waarin je de settings gemakkelijk kunt wijzigen. Als de settings echter vrijwel nooit veranderen dan zou ik het niet in een database stoppen.
 
Mark Hogeveen

Mark Hogeveen

06/06/2013 19:03:24
Quote Anchor link
Oke, het ging mij er ook vooral om dat je bij de kolom van de waarde van een instelling verschillende data types hebt.
De ene waarde is een nummer, de andere een kleine of heel grote string.
Dan zou je bij de kolom waarde dus gemengde datatypes krijgen? En dan zou je dus die kolom het type text moeten geven. varchar of tinytext is bijvoorbeeld is te kort voor een lange string, int is alleen voor nummers.
Is het erg als je een nummer in een kolom zet, die eigenlijk datatype text heeft?
http://www.w3schools.com/sql/sql_datatypes.asp
Gewijzigd op 06/06/2013 19:04:30 door Mark Hogeveen
 
Ozzie PHP

Ozzie PHP

06/06/2013 19:09:14
Quote Anchor link
De datatypes moeten overeenkomen. Ieder datatype neemt geheugen in beslag. Het ene type meer dan het ander. Je moet het datatype daarom afstemmen op de inhoud. Ook zal (waarschijnlijk) een integer in een INT veld sneller worden gevonden dan een INT in een VARCHAR veld.
 
Mark Hogeveen

Mark Hogeveen

06/06/2013 19:41:53
Quote Anchor link
Dan kan dit dus niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Instelling naam      |      Waarde
-------------------------------------------
Login on             |       1
Site email           |       [email protected]
Site naam            |       Naam
Welcome message      |       Welkom.... Lange tekst..........


De kolom waarde heeft een bepaald datatype, en daar moet ik me aan houden.
 
Ozzie PHP

Ozzie PHP

06/06/2013 21:18:40
Quote Anchor link
Het kan wel denk ik als je het instelt op TEXT, maar zie dus mijn eerdere opmerking.
 
Mark Hogeveen

Mark Hogeveen

06/06/2013 21:33:25
Quote Anchor link
Dat is juist het probleem waar ik een oplossing voor zoek, en dat mij een reden geeft om het in een bestand te zetten. In een bestand zetten doe ik niet, maar er moet toch een betere manier zijn om dit juister op te slaan in de database? Of maakt het eigenlijk niks uit, aangezien er niet honderden rijen in de database komen met instellingen.
Gewijzigd op 06/06/2013 21:33:39 door Mark Hogeveen
 
Ozzie PHP

Ozzie PHP

06/06/2013 21:34:56
Quote Anchor link
Ik snap niet wat je bedoelt. Eerst vraag je wat je moet doen en nu zeg je ineens "In een bestand zetten doe ik niet". Wat is dan eigenlijk je vraag?
 
Aad B

Aad B

06/06/2013 22:04:38
Quote Anchor link
Gezien de Welcome message | Welkom.... Lange tekst..........
boodschap nog wel een vraag: Ga je dit voor één user, bijvoorbeeld de admin, opslaan of voor meerdere users?
In het tweede geval zou ik het toch maar in een database opslaan.
 
Mark Hogeveen

Mark Hogeveen

06/06/2013 22:32:30
Quote Anchor link
Voor meerdere users.
 
Reshad F

Reshad F

06/06/2013 23:04:06
Quote Anchor link
Beste Harry.

Je kan in je database gewoon een veld de varchar datatype meegeven. dan kan je er cijfers en letters door elkaar zetten, Een datatype in de database is er voor bedoelt om er voor te zorgen dat je de juiste inhoud krijgt zo moet je bij een rekeningnummer bijvoorbeeld 9 cijfers oftewel integers terugkrijgen int(9) maar bij een "Nickname" van een gebruiker kan je iets krijgen als harry020 dan kan je deze de datatype varchar(255) mee geven.

Wil je een veld waarvan je niet weet hoe groot deze zal worden.. kan je deze een LONGTEXT datatype meegeven en hierbij hoef je niet aan te geven uit hoeveel tekens deze mag bestaan.

Ik denk dat je even moet verdiepen in de datatypes en in combinatie met het verhaal van ozzie

Quote:
Ik denk dat je jezelf misschien eerst moet afvragen of je van plan bent om je settings vaak te veranderen. Als dat niet het geval is, dan kun je ze in een bestand zetten. Als het wel het geval is dan kun je ze in een database zetten en bijv. een cms maken waarin je de settings gemakkelijk kunt wijzigen. Als de settings echter vrijwel nooit veranderen dan zou ik het niet in een database stoppen.


de afweging maken. Wel of niet in de database. want volgens mij kan je gewoon je ei kwijt in de database je weet alleen niet hoe ;)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/06/2013 00:48:50
Quote Anchor link
als je de gegevens in een bestand gaat opslaan zul je constant tegen problemen gaan oplopen. immers wil je later alleen relevante gegevens uit het bestand halen. je wilt bijvoorbeeld alleen de gegevens van een gebruiker die ingelogd is. dit vraagt constant om oplossingen. Hoe ga je gegevens weer verwijderen uit een bestand zonder het hele bestand te vernielen. het wordt allemaal al gauw zeer complex.

een beter alternatief is om een tussenoplossing te gebruiken zoals http://www.c-worker.ch/txtdbapi/index_eng.php
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/06/2013 13:17:17
Quote Anchor link
LONGTEXT is wel een beetje overdreven daar kan je ca 4GB in kwijt.
Afhankelijk van de situatie kan je beter kiezen voor TEXT (64KB) of MEDIUMTEXT(16MB).
 
Reshad F

Reshad F

07/06/2013 15:33:28
Quote Anchor link
@Ger het was meer als voorbeeld om aan te geven hoe klein of groot.. er is voor alles een oplossing :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.