Ik zit met een klein probleempje in het CMS van mijn website.
Deze biedt bij reviews, nieuws, etc. de mogelijkheid om tijdens het maken van een nieuw artikel een reeks foto's eraan toe te voegen. Echter, stoote ik tegen een probleempje aan, waar ik advies van anderen over wil hebben, en wil weten hoe zij dit opgelost hebben.
Vóórdat je het artikel opslaat zou je foto's kunnen toevoegen, deze staan met de bestandsnaam in de database opgeslagen zodat duidelijk is of ze bij de reviews/nieuws etc. horen en welk ID van hen.
Maar.... het ID is tijdens het schrijven nog niet bekend. Is het zinvol om de aanname te doen van het op dat moment recentste ID, en daar +1 bij te doen, of is dit riskant?
Als je in dat geval tabellen hebt die relaties met elkaar hebben (zonder foreign keys) dan hangen deze als los zand aan elkaar en is er geen voorziening vanuit de database zelf die echt afdwingt dat je data consistent blijft (dit heet ook wel referentiële integriteit (RI) EDIT: maar dan goed gespeld).
In (middel)grote administratieve systemen is dit (het ontbreken hiervan, dus) vrijwel altijd ongewenst. Het maakt de kans op corruptie van je data namelijk nogal groot. Tenzij deze RI wordt afgedwongen in je code zelf, maar dat heb ik altijd een beetje vreemd gevonden.
/offtopic
[size=xsmall]Toevoeging op 10/07/2015 00:38:43:[/size]
Frank Nietbelangrijk op 10/07/2015 00:37:00
[quote="Thomas van den Heuvel op 10/07/2015 00:28:54"]
@Aar, ik zou gewoon het oorspronkelijke probleem wegnemen in plaats van voor een (IMO) moeilijkere oplossing gaan.
Maar als je nu een moderne AJAX foto upload wilt zoals deze en dit op dezelfde pagina waar je een nieuw nieuws artikel aanmaakt?
[/quote]
Dan kun je nog steeds mijn voorgestelde aanpak gebruiken?
Vooralsnog geen problemen mee gehad. Ik indexeer mijn tabellen goed en heb tot nu toe nog nooit met foreign key oid gewerkt.
[size=xsmall]Toevoeging op 10/07/2015 00:53:06:[/size]
Ik vind foreignkeys ergens de "luie manier" als je je systeem gewoon goed en zorgvuldig programmeert krijg je nooit loze records zonder koppelingen.
Zo heb je altijd meer grip en overzicht op wat er in je database gebeurt. Want mocht je ooit een keer een foreign key of iets vergeten, dan heb je dus ook geen controle meer.
Thomas van den Heuvel op 10/07/2015 00:37:42
Okay.
Als je in dat geval tabellen hebt die relaties met elkaar hebben (zonder foreign keys) dan hangen deze als los zand aan elkaar en is er geen voorziening vanuit de database zelf die echt afdwingt dat je data consistent blijft (dit heet ook wel referentiële integriteit (RI) EDIT: maar dan goed gespeld).
In (middel)grote administratieve systemen is dit (het ontbreken hiervan, dus) vrijwel altijd ongewenst. Het maakt de kans op corruptie van je data namelijk nogal groot. Tenzij deze RI wordt afgedwongen in je code zelf, maar dat heb ik altijd een beetje vreemd gevonden.
/offtopic
[size=xsmall]Toevoeging op 10/07/2015 00:38:43:[/size]
[quote="Frank Nietbelangrijk op 10/07/2015 00:37:00"]
[quote="Thomas van den Heuvel op 10/07/2015 00:28:54"]
@Aar, ik zou gewoon het oorspronkelijke probleem wegnemen in plaats van voor een (IMO) moeilijkere oplossing gaan.
Maar als je nu een moderne AJAX foto upload wilt zoals deze en dit op dezelfde pagina waar je een nieuw nieuws artikel aanmaakt?
[/quote]
Dan kun je nog steeds mijn voorgestelde aanpak gebruiken?
[/quote]
@Aar, ik zou gewoon het oorspronkelijke probleem wegnemen in plaats van voor een (IMO) moeilijkere oplossing gaan.
Dat kan, je kan 50 minuten erover doen om alles volledig om te bouwen, of een workaround schrijven die in 5 minuten geimplementeerd is, voor een CMS wat toch op korte termijn aan de kant gaat.
@Robert: HTML5 for teh win! Toen ik mijn CMS bouwde was de ondersteuning voor multiple-upload nog erg matig. Nu is HTML5 goed te gebruiken, en zijn er nieuwe wegen open gegaan.
Dat kan, je kan 50 minuten erover doen om alles volledig om te bouwen, of een workaround schrijven die in 5 minuten geimplementeerd is, voor een CMS wat toch op korte termijn aan de kant gaat.
In geen enkele reactie geef je dit aan, en dit is toch wel redelijk doorslaggevend voor de oplossingsrichting die je kiest.
Als je ons niet voorziet van een minimale set cruciale informatie, hoe verwacht je dan van ons om passend advies te geven?