Foreign Key informatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Front-end Developer

Functie omschrijving Gezocht front-end developer! Voor een toffe organisatie in de regio Rhenen zij wij op zoek naar een front-end developer die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. In deze functie heb je een adviserende rol en beschik je over een grote dosis vakinhoudelijke kennis. Samen met collega’s en klanten overleg je om aangeleverde designs om te zetten naar unieke concepten. Zo draag jij je steentje bij aan de groeiambities van de klant. Voor klanten wordt jij het vaste aanspreekpunt als het gaat over planningen hierin houdt je alle betrokkenen goed op de

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

Traineeship ICT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

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

23/12/2024 09:01:54
 
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.