Foreign Key informatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

Java Full Stack Developer

Java Full Stack developer What makes Cognizant a unique place to work? The combination of rapid growth and an international and innovative environment! This is creating a lot of opportunities for people like YOU — people with an entrepreneurial spirit who want to make a difference in this world. At Cognizant, together with your colleagues from all around the world, you will collaborate on creating solutions for the world's leading companies and help them become more flexible, more innovative and successful. And this is your chance to be part of the success story: we are looking for a (Senior) Java

Bekijk vacature »

.NET developer

Functie Jouw team van vier collega .NET developers is verantwoordelijk voor het bouwen van de ETL processen van jouw nieuwe werkgever. Op dit moment wordt de front-end gedaan door een extern team van professionals. Echter wilt jouw nieuwe werkgever graag intern deze kennis uitbreiden en heeft dan ook de ambitie om dit voor het eind van het jaar intern te gaan aanpakken. Dit betekend dat jij als .NET ontwikkelaar de ideale kans krijgt om jezelf samen met jouw collega’s te ontwikkelen als full stack developer. Als .NET ontwikkelaar werk jij bij deze gave werkgever met C# .NET, SQL, JavaScript, REST

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

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 »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

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

13/05/2024 04:15:08
 
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.