Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[MySQL] Eén tabel onder twee namen?

Anoniem
EJR
6 antwoorden
  • [b:03b7f3cf23]De situatie[/b:03b7f3cf23]

    Ik wil een mini-wikifarm maken, te weten 2 installaties die samenwerken. De reden is dat ik artikelen in deze specifieke wiki in zowel het Engels als het Nederlands wil aanbieden. De software die ik gebruik is Mediawiki, van dezelfde makers als Wikipadia.

    Om het onderhoud zo simpel mogelijk te houden wil ik slechts één installatie maken, op Linux (de host) een symbolische link (met mount?) maken zodat er twee directories zijn die naar de installatie wijzen en op basis het verwijzende pad de benodigde instellingen laden. Dat is allemaal nog wel te doen.

    [b:03b7f3cf23]Het probleem[/b:03b7f3cf23]

    Ik zou graag willen dat mensen die zich registreren automatisch bij beide wiki's zijn geregistreerd en dat alle persoonlijke info centraal wordt bijgehouden. De oplossing die ik het meest voor de hand vind liggen is twee tabellen waarvan er eentje simpelweg een alias is voor de ander. Zo zal een verandering op een enkele tabel direct doorwerken op beide tabellen.

    Ik hoop dat ik het een beetje duidelijk heb omschreven. Ik heb proberen te Googelen, maar ben duidelijk niet thuis in de termen om tot een goed resultaat te komen. In ieder geval blijkt een alias in MySQL heel iets anders te zijn.

    Iedereen die ook maar een beetje kan bijdragen: graag! Ik zit helemaal vast… :-?

    - Bas
  • zoek eens op PostSQL en dan naar relations. Dit zou als het goed is het andwoord moeten zijn op jou vraag. Anders zou je ook eventueel kunnen overwegen om het script aan te passen en het in beide databasen te laten schrijven.
  • Ik zou de meest voor de hand liggende oplossing juist 1 tabel, die door beide applicaties wordt gebruikt, vinden. Bij single sign on (SSO) systemen werk je juist met 1 bron en vaak ook een losse authenticatie service die door meerdere applicaties kan worden gebruikt.
    Als het niet mogelijk is om bij registratie en/of authenticatie te verwijzen naar een table in een andere database, dan is het misschien mogelijk om voor dat specifieke doel even een andere connectie te openen in de code.

    Bijvoorbeeld, in MS SQL Server is onderstaande mogelijk (mits de juiste rechten):
    [code:1:72ad890fec]
    – vanuit de ene database
    USE database1

    – selecteren we data uit een table van een andere database
    SELECT * FROM database2..table1
    [/code:1:72ad890fec]

    Een andere mogelijkheid is misschien de tabel in de ene database te vervangen door een VIEW (beschikbaar vanaf MySQL 5) op de tabel in de andere database (met dezelfde naam als de table). Ik weet zo alleen niet of je:
    a. views kan laten verwijzen naar een andere database;
    b. een update / insert / delete kan uitvoeren op de view.

    Maar dat is iets wat je zo hebt uitgeprobeerd.
    Als ik even snel scan door de documentatie van MySQL dan zie ik wel dat views niet indexeerbaar zijn (als ik het tenminste goed heb begrepen). Dat zou dan weer een nadeel zijn.

    Nog een laatste idee is het gebruik van (merge)replicatie tussen beide databases. Maar ook daarvoor geldt dat ik niet bekend ben met de (on)mogelijkheden binnen MySQL.
  • Bedankt voor de antwoorden, ik heb nu geen tijd om me in de antwoorden te verdiepen maar zal dat na het weekend zeker doen. Wel wil ik nog even het volgende benadrukken: het gaat om twee tabellen in één database.

    [size=9:0dfae2696b](Okee, in werkelijkheid zijn het meerdere tabellen die elk dubbel voorkomen, alleen voeg ik een prefix toe om de talen te onderscheiden. De reden dat ik niet dezelfde tabel gebruik voor beide datasets is dat er compleet geen overlap is qua gegevens, de talen moeten volledig gescheiden zijn. Helaas biedt MediaWiki hier geen opties voor en moet ik het dus anders aanpakken. De enige plek waar ik expliciet redundantie heb is de gebruikerstabel, welke ik dus te allen tijden gesynchroniseerd wil hebben, of liever nog: dat door beide applicaties dezelfde gebruikersgegevens worden aangesproken.)[/size:0dfae2696b]

    Heel erg bedankt, ík kom hier zeker nog op terug!

    - Bas
  • Een VIEW is idd de beste oplossing..
  • [quote:4ff1b410e1="quesera"]Een VIEW is idd de beste oplossing..[/quote:4ff1b410e1]
    Omdat?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.