Hoe kan ik dit het beste oplossen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Snelle Jaap

Snelle Jaap

15/08/2018 11:56:52
Quote Anchor link
Ik ben bezig met een script om bedrijven toe te voegen aan een systeem. Elk bedrijf zit gekoppeld aan een user.

Twee tabellen heb ik dus:

companies
- id
- userid (gekoppeld aan het id van onderstaande tabel)

users
- id

Vanzelfsprekend nog meer rijen met o.a. de naam en passwords maar dat is niet echt relevant voor mijn vraag.

In mijn systeem voeg je alle informatie nu in één keer toe. Oftewel je hebt een formulier waar alle gegevens van het bedrijf ingevuld kunnen worden met vervolgens twee velden voor de username en het password.

Mijn vraag is, hoe kan ik in één script beide toevoegen en aan elkaar linken?

Stel ik voeg bedrijf A toe met id 10 en user A met id 5, hoe kan ik er voor zorgen dat userid in de tabel companies gevuld wordt met 5?
 
PHP hulp

PHP hulp

22/09/2018 02:26:17
 
Ward van der Put
Moderator

Ward van der Put

15/08/2018 12:23:07
Quote Anchor link
Je kunt een AUTO_INCREMENT op de ID zetten en na een INSERT de gegenereerde ID opvragen met mysqli_insert_id() of PDO::lastInsertId:

http://php.net/manual/en/mysqli.insert-id.php

http://php.net/manual/en/pdo.lastinsertid.php

Ik denk dat je er wel verstandig aan doet een derde tabel toe te voegen die gebruikers aan bedrijven koppelt, want in de huidige opzet kan één bedrijf bijvoorbeeld niet meer dan één user hebben (wat soms best onhandig kan worden bij grote bedrijven).
 
Snelle Jaap

Snelle Jaap

15/08/2018 12:42:59
Quote Anchor link
Bedankt. Hoezo een derde tabel? Kan je dat niet oplossen met JSON of iets dergelijks?
 
- Ariën -
Beheerder

- Ariën -

15/08/2018 13:13:56
Quote Anchor link
Die derde tabel die je nodig hebt is een koppeltabel. Je wilt immers meerdere gebruikers aan een bedrijf hangen. Ik snap niet wat JSON hier voor nut kan bieden, want het gaat immers om een genormaliseerde database-structuur.
Gewijzigd op 15/08/2018 13:14:07 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

15/08/2018 15:11:48
Quote Anchor link
Het zou misschien ook logischer zijn dat in de user tabel een company id voorkomt, in plaats van een user id in de company tabel. Doorgaans werken er meerdere mensen bij één bedrijf en zijn medewerkers maar actief bij één bedrijf.

Of je houdt het compleet flexibel en introduceer je een koppeltabel ("employees" ofzo) zoals @Ward aangeeft.

Dusss, terug naar de tekentafel? :p
 



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.