Database of file?
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)
1
2
3
4
5
6
2
3
4
5
6
Instelling naam | Waarde
-------------------------------------------
Login on | 1
Site email | [email protected]
Site naam | Naam
Welcome message | Welkom.... Lange tekst..........
-------------------------------------------
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
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 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
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.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
Instelling naam | Waarde
-------------------------------------------
Login on | 1
Site email | [email protected]
Site naam | Naam
Welcome message | Welkom.... Lange tekst..........
-------------------------------------------
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.
Het kan wel denk ik als je het instelt op TEXT, maar zie dus mijn eerdere opmerking.
Gewijzigd op 06/06/2013 21:33:39 door Mark Hogeveen
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?
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.
Voor meerdere users.
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 ;)
een beter alternatief is om een tussenoplossing te gebruiken zoals http://www.c-worker.ch/txtdbapi/index_eng.php
Afhankelijk van de situatie kan je beter kiezen voor TEXT (64KB) of MEDIUMTEXT(16MB).
@Ger het was meer als voorbeeld om aan te geven hoe klein of groot.. er is voor alles een oplossing :)