De tabellen van mijn database zouden een uniek nummer moeten hebben.
Ik bedoel niet de rijen, velden of kolommen maar de waarde van de tabellen.

Is het mogelijk deze tabellen een unieke sleutel en autoincrement te geven via PHPMYADMIN of kan dit alleen via een PHP script?
Ja, dat kan.
Wat bedoel je van de waarde van een tabel? Want laten we de structuur van een database eens bekijken.

Een database bestaat uit hoofdstukken waarin je de data opslaat, dit zijn de tabellen. Hierin staan de velden, waarin de de inhoud van de items (ook records genoemd) wordt beschreven.


Dus wat bedoel je nou precies?
Autoincrement is sowieso al uniek
Blijf ik wel benieuwd waarom je tabellen zou willen nummeren.
Tabellen wil ik nummeren omdat ik het nummer later via een conditie wil uitlezen en op het scherm zetten.

Ik zie niet op welke manier ik phpmyadmin moet instellen om de tabellen uniek te maken met autoincrement.

[size=xsmall]Toevoeging op 29/05/2015 14:32:20:[/size]

Maar hoeft niet toch. Ik wil weten wat de mogelijkheden zijn. Ik heb ook een idee dat ik een $var[x] kan laten maken met CREATE TABLES, maar als phpmyadmin of mysql bepaalde instructies bevat wil ik dat eerst overwegen.
Misschien helpt het als je vertelt wat je uiteindelijk probeert te bereiken. Mogelijk is een generieke opzet van je database-tabellen een (beter) alternatief dan allemaal afzonderlijke tabellen die hetzelfde doen.

Als ik het goed begrijp wil je een database bouwen in je database, met andere woorden, op een soort van generieke manier je tabellen opbouwen. Misschien is de EAV-aanpak (Entity-Attribute-Value) iets voor jou?

Maar tis om te beginnen wellicht handig(er) als je vertelt wat je probeert te doen. Mij is in ieder geval niet duidelijk wat je bedoelt.
Ik ben ook benieuwd naar je doel. Als ik iets lees over genummerde tabellen dan moet de databasestructuur niet echt kloppen.
de structuur van een database moet staan. Een applicatie moet niet on-the-fly de structuur (tabellen en/of kolommen) moeten mogen aanpassen.

Je zou dan ook steeds in je database de structuur moeten bepalen om te zien of tabel999 al bestaat. Query's worden dan dynamische samengesteld?

Lijkt me logischer om ipv tabel999, tabel998 etc een tabel te hebben waarin 1 extra kolom staat. In die kolom staat vervolgens 999 of 998 oid. om aan te geven dat het data is die in jouw beleving in tabel999 zou staan...

Aangenomen dat de verdere structuur van de verschillende genummerde tabellen gelijk is.
Beginnende PHP-ers denken vaak dat je voor bijvoorbeeld iedere user waarvoor je een (flink) aantal zaken wilt opslaan in je database een aparte tabel nodig hebt. Dit is echter niet het geval. Stel je wilt per user een aantal settings opslaan. Je kunt dan één tabel 'settings' maken waarin je de settings van ALLE users kriskras door elkaar kunt opslaan. Het enigste dat je nodig hebt is een extra kolom met een "foreign key" waarin het id van de user wordt bewaard. Vervolgens kun je gewoon doen:


SELECT * FROM settings WHERE user_id=123

Misschien kan een query als deze van pas komen:

SELECT 'CD' AS `tabel`, `cd`.* FROM `cd`
UNION SELECT 'DVD', `dvd`.* FROM `dvd`
UNION SELECT 'Blu-ray', `br`.* FROM `br`
ORDER BY 2 ASC;

Aangenomen dat elke tabel als eerste kolom een ID heeft waarop je sorteert. Dat ID hoeft dan niet uniek te zijn, omdat het in het resultaat gecombineerd wordt met een eigen referentie naar de tabel waar het vandaan komt.
N.B.: UNION verwijdert dubbele rijen.

Reageren