Omgaan met ID's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lendl Verschoor

Lendl Verschoor

02/10/2013 09:55:36
Quote Anchor link
Stel voor:

Je hebt een CMS systeem gemaakt en verkocht aan een X aantal klanten.
Hierop maak je nieuwe functies die de DB nodig hebben.

Voorbeeld van zo een Call kan zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM bericht WHERE statusID = Y

Deze doet het dan goed bij Klant A maar niet bij Klant B of bij een toekomstige Klant omdat de ID's daar anders zijn.

Wat is een goede oplossing voor deze situatie?
Gewijzigd op 02/10/2013 09:55:54 door Lendl Verschoor
 
PHP hulp

PHP hulp

17/11/2024 12:42:54
 
Kris Peeters

Kris Peeters

02/10/2013 10:18:13
Quote Anchor link
Klant A en klant B werken toch niet met gezamelijke gegevens? Ze verkopen niet de zelfde producten, ze hebben niet de zelfde eigen klanten.
Of wel?

Ik zie niet waarom id's consistent moeten zijn over systemen heen; zolang de id's maar zinnig zijn binnen het systeem van klant A; of binnen het systeem van klant B.

Mis ik iets?
 
Lendl Verschoor

Lendl Verschoor

02/10/2013 11:39:24
Quote Anchor link
Alle klanten hebben hun eigen DB, ze hebben wel dezelfde DB structuur.

Als ik nu een functie erbij maak voor Klant X(bijvoorbeeld het ophalen van berichten met een bepaalde statusID). Als ik dan dezelfde functie wil toevoegen bij klant Y, dan moet ik nagaan wat de statusID daar zo is en zo de DB Call aanpassen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/10/2013 12:14:23
Quote Anchor link
je moet dus eerst zorgen dat je het juiste id krijgt bij de status en pas dan kun je de door jouw geplaatste query aanroepen.

Dat betekent dus twee stapjes
1. SELECT id FROM statussen WHERE name='ready' //je haalt het id op van de status waar je mee wilt werken
2. "SELECT * FROM bericht WHERE statusID=" . $row['id']; //met dat id stel je de volgend query samen

Wellicht zou dit ook nog wel met een subquery mogelijk zijn. dan begeef ik me een beetje op glad ijs maar het zou dan iets worden als
"SELECT * FROM bericht WHERE statusID=(SELECT id FROM statussen WHERE name='ready')

of een JOIN:

SELECT ... FROM bericht LEFT JOIN statussen ON statussen.id=bericht.statusID WHERE statussen.name='ready'

Toevoeging op 02/10/2013 12:26:33:

als je er niet uitkomt geef dan even de opbouw van je tabellen.
Gewijzigd op 02/10/2013 12:24:22 door Frank Nietbelangrijk
 
Lendl Verschoor

Lendl Verschoor

02/10/2013 15:23:37
Quote Anchor link
Ik zit niet met dit probleem, ik vroeg me af hoe andere mensen hier naar kijken.

Ik heb geen database structuur, ik gaf een voorbeeld.
Het is meer dat als je een nieuwe functie maakt voor Klant X hoe ga je dan na dat ze ook bij de andere klanten het gelijk doen?

Je kan zo een heel ander resultaat terug krijgen dan verwacht?

Op omschrijving/naam controleren kan zolang deze uniek is. Als de klant dit kan aanpassen werkt deze manier niet.
 
Eddy E

Eddy E

02/10/2013 15:25:45
Quote Anchor link
Klant X, K en Y gebruiken toch dezelfde code?

Gewoon dezelfde code/functie toevoegen en het zou overal moeten werken.
Maar ik neem aan dat je maar op 1 plek de code hebt staan, en dat die door verschillende mensen/klanten wordt gebruikt?
 



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.