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?

Hoe zouden jullie dit oplossen?
Robert Wazzaa op 10/07/2015 00:06:12

Wat ik in deze situatie doe is eigenlijk vrij simpel.
Bij een nieuw item is het relatie ID altijd 0

Bij het opslaan zorg ik dat alle records die relatie id 0 zijn gekoppeld worden.
Zo heb je geen risico.

En als je dan nog zorgt dat bij het opnieuw laden van het formulier eventueel alle 'oude records' die nooit aan een hoofdrecord gekoppeld zijn verwijderd worden, krijg je ook geen loze records.


En als er meerder gebruikers tegelijk bezig zijn dan? :o
Frank Nietbelangrijk op 10/07/2015 00:08:21

[quote="Robert Wazzaa op 10/07/2015 00:06:12"]
Wat ik in deze situatie doe is eigenlijk vrij simpel.
Bij een nieuw item is het relatie ID altijd 0

Bij het opslaan zorg ik dat alle records die relatie id 0 zijn gekoppeld worden.
Zo heb je geen risico.

En als je dan nog zorgt dat bij het opnieuw laden van het formulier eventueel alle 'oude records' die nooit aan een hoofdrecord gekoppeld zijn verwijderd worden, krijg je ook geen loze records.


En als er meerder gebruikers tegelijk bezig zijn dan? :o
[/quote]


dan staat het record aan de gebruiker gekoppend met het record id 0
Dus zou het geen probleem moeten geven.
Dus:

Henk voegt een foto toe: en user_id=0
Fred voegt een foto toe: en user_id=0
Henk bewaart zijn artikel en deze wordt in de database opgeslagen als artikel_id=456

en dan???
Mijn huidige CMS werkt inderdaad nog met een upload die los van mijn formulier-POST-request hangt. De reden is dat er toen nog geen goede mogelijkheden waren voor multiple upload.

Ik zal SanThe's manier aanhouden. Een SessieID moet het uniek maken.

In de rewrite van mijn CMS ga ik uiteraard alles in gewoon direct in een en dezelfde POST-request van het invoer-formulier gebruiken, dat bespaart een hoop geklooi.
Nee user_id zal niet 0 zijn, die zal het ID van de user hebben. artikel_id = 0

Frank Nietbelangrijk op 10/07/2015 00:23:27

Dus:

Henk voegt een foto toe: en user_id=0
Fred voegt een foto toe: en user_id=0
Henk bewaart zijn artikel en deze wordt in de database opgeslagen als artikel_id=456

en dan???


Robert Wazzaa op 10/07/2015 00:06:12
Wat ik in deze situatie doe is eigenlijk vrij simpel.
Bij een nieuw item is het relatie ID altijd 0

Ik hoop dat je NULL bedoelt als je het over database-termen hebt. Je slaat toch niet letterlijk "0" op?

Robert Wazzaa op 10/07/2015 00:06:12
Bij het opslaan zorg ik dat alle records die relatie id 0 zijn gekoppeld worden.
Zo heb je geen risico.

Nog nooit te maken gehad met sessie-timeouts door wat voor reden dan ook?

@Aar, ik zou gewoon het oorspronkelijke probleem wegnemen in plaats van voor een (IMO) moeilijkere oplossing gaan.
Nee ik bedoel wel zeker een 0. is ook gewoon een waarde in de database.
Dat gaat toch niet werken met foreign keys / foreign key constraints, of gebruik je deze niet?
ik gebruik die niet nee.
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?

Reageren