Foreign Key informatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer Javascript Angular (JS)

Bedrijfsomschrijving Onze klant is een internationale organisatie in Rotterdam en heeft meerdere vestigingen wereldwijd. De IT afdeling in Rotterdam verzorgt diensten voor deze landen. Ter versterking van het team zijn zij op zoek naar een ervaren Full Stack Developer. De IT afdeling bestaat uit 3 systeembeheerders en 3 developers. Samen met 3 andere Developers ontwikkel je aan het ERP pakket. De organisatie is te omschrijven als no-nonsense, ondernemend en informeel. Naast de locatie in Nederland hebben ze verschillende locaties in het buitenland. Functieomschrijving Full Stack Developer Het onderhouden en verder inrichten van het ERP pakket middels Javascript, Angular (JS), SOAP,

Bekijk vacature »

PHP Developer Symfony Vue.js

Bedrijfsomschrijving Betreffende organisatie is gevestigd in de regio van Lelystad en is al ruim 20 jaar lang bedreven in het ontwikkelen en aanbieden van diverse communicatiemiddelen aan de consumentenmarkt. Hierin staan innovatie, optimale klantbeleving en een passie voor technologie centraal. Ruim 100 medewerkers staan dagelijks klaar om te zorgen voor een optimale klantbeleving en optimalisatie van het aanbod. Om diverse businessprocessen binnen de organisatie vloeiend te laten verlopen is software ontwikkeling van essentieel belang. Binnen de organisatie zijn drie scrumteams dagelijks bezig met het beheer en de doorontwikkeling van het applicatielandschap. Zij werken aan verschillende projecten om de beleving van

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas!

Bekijk vacature »

Front-end developer

Ben jij een front-end developer met feeling voor design en animaties? Wil je werken met moderne tools en ben jij ervaren met SCSS/SASS? Wil jij samenwerken met onze backenders en onze UX / visual designers om toffe cases en de nieuwste technieken inzetten voor onze klanten? 24 - 40 uur Samenwerken met designers en developers Zelfstudie budget Tijd voor nette code Certificaten halen Marktconform salaris incl moderne pensioenregeling en bonus Jouw functie als front-end developer Je gaat bij ons werken aan maatwerk (web)applicaties voor verschillende opdrachtgevers, complexe websites in Drupal CMS en soms een eenvoudige website in Wordpress. Dat doe

Bekijk vacature »

Ontwikkelaar

Wij zoeken een capabele Magento developer, die mee willen werken aan het realiseren van mooie webshops. Wij zoeken een creatief, enthousiast, leergierig, gezellig en capabel persoon. Zelfstandig kunnen werken. Goed kunnen communiceren. De wil hebben om verder te groeien. Als Magento developer werk je samen met je team aan de allerbeste webshops voor onze opdrachtgevers. Wat ga je doen als Magento developer? Ontwikkelen van webshops in Magento Onderhoud plegen aan bestaande webshops Behalve kennis van Magento heb je ook kennis van Javascript, HTML, CSS Je bent in staat om zowel zelfstandig als in teamverband te werken Je bent in staat

Bekijk vacature »

Projectleider IT

Van wifi voor onze wooncomplexen tot IT building management, als projectleider IT ben jij in de lead. Met een heldere en professionele aanpak speel jij vandaag in op de ontwikkelingen van morgen. IT-projecten en wooninnovaties in goede banen leiden Goede internetvoorzieningen zijn tegenwoordig onmisbaar. Zeker als je studeert. Online colleges volgen, samenwerken, papers schrijven en research doen, het gaat allemaal via de digitale snelweg. Of wat dacht je van video’s streamen of online gamen? Bij de SSH maken we dit mogelijk met optimale internetconnectiviteit via ons eigen SSH-net. Aan jou als projectleider om ervoor te zorgen dat deze internetdienstverlening voor

Bekijk vacature »

Senior Front-end Developer (Angular/Typescript)

Bedrijfsomschrijving Onze klant is een zeer gerenommeerde organisatie binnen software development. Ze zoeken een ervaren Front-end koning die hun team gaat versterken. Bij deze organisatie werken 70 mensen op diverse afdelingen met ieder hun eigen specialismen. Ze hebben diverse teams die bezig houden met onder andere, innovatie, development en testing. Hier hangt een laagdrempelige cultuur er de sfeer kun je bijna omschrijven als huiselijk. Deze sfeer wordt gecreëerd door hele prettige collega's die er vaak al lang zitten of lang blijven zitten. Daarnaast zijn de kantoren zo ingericht dat het heel huiselijk overkomt. Hoe komt dat? Dat moet je zelf

Bekijk vacature »

Fullstackdeveloper

Fullstackdeveloper SSC-ICT Functieomschrijving Een opschaling van enkele tientallen naar acht- tot tienduizend (!) gebruikers voor onze nieuwe webbased applicatie. Dat is de grote uitdaging waar jij en je collega's in het Digidoc-scrumteam voor staan. Eer van je werk? Reken maar. Want als fullstackdeveloper maak jij het voor drie ministeries nu en in de toekomst een stuk eenvoudiger om hun documenthuishouding op orde te houden. Als allround programmeur krijg je een warm welkom in ons goed geoliede scrumteam. Jouw team werkt al ruim twee jaar aan Digidoc Online, het nieuwe documentmanagementsysteem op basis van IBM FileNet voor de ministeries van Binnenlandse

Bekijk vacature »

DevOps Engineer

DevOps Engineer bij de Nationale Politie Werken bij de Politie op basis van detachering Voor onze opdrachtgever, de Nationale Politie in Odijk, zijn we met spoed op zoek naar DevOps Engineers o.b.v. detachering. Binnen het team Werkplekken, Workspace & Innovation dragen ze zorg voor de inrichting en beheer van de fysieke en virtuele werkplekken (endpoints) die door de politie organisatie gebruikt worden. Dit doe je in de grootste werkplek omgeving van Nederland. Wat zijn jouw verantwoordelijkheden en werkzaamheden? Doelstelling: Als DevOps Engineer help je bij het maken en verbeteren van de benodigde werkplek en backend onderdelen op basis van het

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder Jij: Vindt het leuk om binnen een klein IT-team aan de slag te gaan met het functioneel beheer van voornamelijk Microsoft Business Central, maar ook andere applicaties. Kan goed schakelen tussen operationeel beheer en business change en wordt blij van een brede functie die bestaat uit beide aspecten. Zoekt graag dingen uit, analyseert processen en informatiestromen waarbij je in oplossingen denkt. Hebt kennis van ITIL, TMap en BiSL of bent bereid om hier trainingen in te volgen. Bent in staat om de vragen en behoeften van gebruikers te vertalen naar concrete

Bekijk vacature »

Functioneel Applicatiebeheerder

Ben je op zoek naar een uitdagende baan bij één van de beste hogescholen van Nederland? Solliciteer dan op de functie Functioneel Applicatiebeheerder bij Hogeschool Tio. De functie In deze functie ben je het aanspreekpunt en verantwoordelijk voor verschillende systemen, waaronder het studenteninformatiesysteem, Office365, CRM, HRM, Sharepoint en Exact. Je zorgt er actief voor dat je klanten optimaal geholpen worden met de systemen. Taken die hierbij horen zijn het uitwerken van een functioneel ontwerp, het inrichten van de systemen, het aanleveren van managementinformatie en zoeken naar verbeteringen. Tevens geef je gebruikerstrainingen en neem je deel aan diverse ICT-innovatieprojecten. Wat biedt

Bekijk vacature »

C/C++ Developer

Bedrijfsomschrijving Als Software ontwikkelaar C/C++ kom je te werken bij een toonaangevende organisatie in de mobiliteitsbranche die door het produceren van slimme producten Nederland steeds leefbaarder maakt! Ze ontwikkelen innovatieve producten die er onder andere voor zorgen dat de infrastructuur in Nederland op de snelste en meeste efficiënte manier kan worden geregeld. Als C/C++ ontwikkelaar kom je te werken op een afdeling met 40 collega's, bestaande uit Engineers, deskundigen en ontwikkelaars. Hiervoor werk je nauw samen in een team met ongeveer tien andere ontwikkelaars. Samen met het team pak je zelfstandig projecten op die doorgaans een doorlooptijd hebben van 4

Bekijk vacature »

New Business Developer ICT - Noord-Holland - &euro

Wat ga je doen? Als New Business Developer ICT ben jij de verbindende schakel tussen je werkgever en nieuwe klanten. De diensten die jij aan te bieden hebt variëren van klant tot klant. Je helpt je klanten met het vinden van de juiste oplossingen voor hun vraagstukken in de Logistiek dmv een prachtige software tool. Juist deze oplossingen die jij je klanten aan kan bieden zijn uniek omdat alles volledig aangepast kan worden naar de vraag van de klanten. De focus ligt niet op het waarmaken van de klantverwachtingen, je wordt verwacht om altijd te streven naar het overtreffen van

Bekijk vacature »

Senior C# Developer

We’re Hiring! A UPS Senior C# Developer *REMOTE WORK POSSIBLE FOR THIS ROLE* UPS is the world's largest package delivery company – with a strong and recognizable brand, and a legendary reputation for great service. We are looking for an enthusiastic Senior C# Developer to join our IT Team, As a Senior Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life

Bekijk vacature »

Backend Developer XQuery

Bedrijfsomschrijving Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met XQuery en Vue.JS. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot zijn verantwoordelijkheden. Door COVID zoeken ze iemand die goed in staat in zelfstandig vanuit huis te werken. Functieomschrijving Ben jij een Back-end Developer en heb je ervaring met XQuery, NoSQL-databases, JSON en REST API's? Wil je meewerken aan een grootschalig project binnen een vooruitstrevende zorg omgeving? Reageer dan

Bekijk vacature »
Bo az

Bo az

03/03/2008 18:54:00
Quote Anchor link
Ik ben op zoek naar een query die mij informatie of de foreign keys van een bepaalde tabel kan geven, maar kan deze nergens vinden.

In MySQL heb je wel bijvoorbeeld SHOW KEYS FROM tabel maar die geeft niet de informatie die ik wil hebben namelijk: de tabel waarnaar verwezen wordt en de kolom in die tabel waar naar verwezen wordt.

Weet iemand toevallig hoe ik dit voor elkaar kan krijgen?
In eerste instantie zoek ik dit voor MySQL maar als iemand het voor pgSQL weet is dat ook welkom.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
PHP hulp

PHP hulp

08/05/2021 22:02:01
 
Frank -

Frank -

03/03/2008 19:20:00
Quote Anchor link
MySQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SHOW CREATE TABLE jouw_tabelnaam;

Het resultaat mag je dan verder gaan uitpluizen, maar de informatie over de FK staat er tussen.

PostgreSQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM pg_constraint WHERE contype = 'f';

Dit levert alle foreign key contstraints in je database op, inclusief de betrokken tabel- en kolomnamen. Met functies als pg_class en pg_attribute kun dan nog meer details op gaan vragen. Door in de WHERE ook een beperking te leggen op conrelid, kun je zoeken op een specifieke tabel.

Edit:
Deze query is fraaier, uitgewerkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    c.*,
    p.*
FROM
    pg_constraint AS c
        JOIN pg_class AS p ON c.conrelid = p.relfilenode
WHERE
    c.contype = 'f'
AND
    p.relname IN('jouw_tabelnaam');

Met de resultaten kun je dan weer verder gaan spitten.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Bo az

Bo az

07/03/2008 13:16:00
Quote Anchor link
Ik ben weer bezig ;)

MySQL:
SHOW CREATE TABLE kende ik ook, maar dat is nog al een gepluis, is er geen andere (lees: makkelijkere) manier?

pg:
Ik ben nog een newbee als het gaat om pg, helemaal met arrays ed.
En als ik me niet vergis heb je die nodig om te weten te komen welke kolom(en) er bij de fk horen. Ik dacht zelf gezien jouw (pgFrank) voorbeeld en een comment bij de link aan de volgende join:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
JOIN pg_attribute a ON a.attnum = ANY(c.confkey)

Maar die lijkt niet helemaal lekker te werken (, waar vast een logische verklaring voor is).

Edit:
Niet lekker te werken is misschien te vaag, ik krijg gewoon veel te veel dubbele resultaten.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Frank -

Frank -

07/03/2008 13:48:00
Quote Anchor link
pg_constraint:
confrelid is het OID van de tabel die de FK bevat
conrelid is het OID van de tabel waar de FK naar verwijst.

pg_class:
conkey is het kolomnummer (of numers) die in een array staat/staan van de tabel die de FK bevat
confkey is het kolomnummer s het kolomnummer (of numers) die in een array staat/staan van de tabel waar de FK naar verwijst.

Haal eerst eens de FK's op en de OID's van de betrokken tabellen. Tevens de array's, dan kun je gaat kijken hoe dit nu inelkaar steekt.

pg_attribute:
attrelid is het OID van de tabel en attnum is het volgorde-nummer van de kolom in de tabel. Deze kun je dus uit de array plukken die in conkey of confkey staat.

Je kunt de functie array_to_string() gebruiken om de array om te zetten naar een string (duhhh) en gescheiden door een komma in een IN()-vergelijking te zetten. Wel zo handig en begrijpelijk.

Het kan wellicht fraaier, maar met dit soort constructies (die overigens erg leuk zijn!) heb ik nog maar weinig gewerkt.

Succes!

Ps. Laat je ook even zien wat het is geworden? Kan ik vast wat van leren.
 
Bo az

Bo az

07/03/2008 15:13:00
Quote Anchor link
Ik ben er nu bijna!

Die vele resultaten kwamen dus omdat ik de OID's niet mee nam in de join...

Ik heb nu het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
    p.relname AS tabel_naam,
    array_to_string(c.conkey, ', ') AS kolomen,
    a.attname AS kolom_naam,
    p2.relname AS reference_tabel_naam,
    array_to_string(c.confkey, ', ') AS reference_kolomen
FROM
    pg_constraint AS c
        JOIN pg_attribute AS a ON (a.attnum = ANY(c.conkey) AND a.attrelid=c.conrelid)
        JOIN pg_class AS p ON (c.conrelid = p.relfilenode)
        JOIN pg_class AS p2 ON (c.confrelid = p2.relfilenode)
WHERE
    c.contype = 'f'
AND
    p.relname = 'test_reference';


Dit werkt prima, ook voor samengestelde fk's.

Maar zoals je misschien al ziet mis ik nog 1 ding, namelijk de kolom in de tabel waarnaar verwezen wordt.

Daarvoor zou ik nog een JOIN op pg_attribute moeten toevoegen (toch?).
Deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
JOIN pg_attribute AS a2 ON (a2.attnum = ANY(c.confkey) AND a2.attrelid=c.confrelid)


Maar de query die daar uit volgt geeft in het geval van samengestelde fk's dubbele resultaten. Wat ook logisch is omdat er nu op 2 resultaten 2x gejoind wordt (door de array).

Enig idee hoe ik dit kan oplossen?

De volledige query (met dubbele resultaten:)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
    p.relname AS tabel_naam,
    array_to_string(c.conkey, ', ') AS kolomen,
    a.attname AS kolom_naam,
    p2.relname AS reference_tabel_naam,
    array_to_string(c.confkey, ', ') AS reference_kolomen,
    a2.attname AS reference_kolom_naam
FROM
    pg_constraint AS c
        JOIN pg_attribute AS a ON (a.attnum = ANY(c.conkey) AND a.attrelid=c.conrelid)
        JOIN pg_attribute AS a2 ON (a2.attnum = ANY(c.confkey) AND a2.attrelid=c.confrelid)
        JOIN pg_class AS p ON (c.conrelid = p.relfilenode)
        JOIN pg_class AS p2 ON (c.confrelid = p2.relfilenode)
WHERE
    c.contype = 'f'
AND
    p.relname = 'test_reference';


ps. Zijn die arrays niet een enorme overtreding op de 1e normaalvorm?
 
Frank -

Frank -

07/03/2008 15:18:00
Quote Anchor link
Boaz schreef op 07.03.2008 15:13:
ps. Zijn die arrays niet een enorme overtreding op de 1e normaalvorm?
Wie zegt dat er hier wordt genormaliseerd? Je hebt het over een weergave van een SELECT-query en dat kan prima met array's. Dat ik zelf niet zo'n liefhebber ben van array's in de database, dat is weer een ander verhaal. Ze zijn hier goed bruikbaar, zeker omdat je met dit soort functies toch vooral binnen de database aan het rommelen bent en niet daarbuiten.

Wat jij voor een applicatie aan het maken bent, is mij dan ook een raadsel. pgAdmin3 is een uitstekende tool en PhpPgAdmin volstaat voor het lokale werk op de server.

Ps. De query lijkt goed te werken, ik zit hem even te testen op een datamodel dat ik hier heb liggen en krijg de juiste resultaten. Geef de tabel op die fk's bevat en ik krijg keurig de parent-tabellen en de kolommen waar de FK op ligt.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Bo az

Bo az

07/03/2008 16:01:00
Quote Anchor link
Werkt prima, totdat je samengestelde pk/fk's hebt probeer 'm maar eens hier op uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE test (
pk_1 CHAR(10),
pk_2 CHAR(10),
nogiets VARCHAR(100),
PRIMARY KEY (pk_1, pk_2)
);

CREATE TABLE test_reference (
pk SERIAL PRIMARY KEY,
fk_1 CHAR(10) NOT NULL,
fk_2 CHAR(10) NOT NULL,
FOREIGN KEY (fk_1, fk_2) REFERENCES test (pk_1, pk_2)
);


Quote:
Wat jij voor een applicatie aan het maken bent, is mij dan ook een raadsel.


Ik wil automatisch formulieren genereren, dat wil dus zeggen dat ik bijvoorbeeld bij een DATE veld een kalender wil weergeven etc.
Omdat een foreign key een beperking op de mogelijkheden legt wil ik daar dus een select element hebben.
Onder water zal ik dus de kolom(men) van de parent tabel moeten ophalen om te weten welke opties er in die select moeten komen.
 
Bo az

Bo az

07/03/2008 19:31:00
Quote Anchor link
Ik heb inmiddels wel het juiste resultaat te pakken met MySQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT *
FROM  information_schema.KEY_COLUMN_USAGE WHERE     
    REFERENCED_TABLE_NAME IS NOT NULL
AND
    TABLE_NAME='test_reference'


Edit:
Oeps, dit is eigenlijk een bump :$
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Bo az

Bo az

28/03/2008 16:31:00
Quote Anchor link
Een late reactie, maar het is ook bij postgre gelukt en wel via 'information_schema' dat is ansi sql en dus redelijk standaard. Helaas zitten er toch nog wel de nodige verschillen in met mysql.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Frank -

Frank -

28/03/2008 16:34:00
Quote Anchor link
Uiteraard zijn er verschillen, je zult vooral veel meer informatie krijgen. Al is dat een klein gokje, ik ben niet zó bekend met de details van MySQL... Ik gebruik hem vooral om afscheid van te nemen. Surprise surprise, dat hadden jullie vast niet verwacht!

;)
 



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.