Archief - Mysql schema

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

shopshop

Legacy Member
Ik ben nu al een tijdje bezig met php en msql en nu kwam ik dit tegen in een stukje code:

PHP:
define(‘DB_HOST’, ‘localhost’);
define(‘DB_USER’, ‘username’);
define(‘DB_PASSWORD’, ‘password’);
define(‘DB_SCHEMA’, ‘WROX_DATABASE’);
define(‘DB_TBL_PREFIX’, ‘WROX_’);

if (!$GLOBALS['DB'] = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD))
{
    die('Error: Unable to connect to database server.');
}
if (!mysql_select_db(DB_SCHEMA, $GLOBALS['DB']))
{
    mysql_close($GLOBALS['DB']);
    die('Error: Unable to select database schema.');
}

Normaal gezien doe ik een DB connectie altijd zonder dat Schema gedoe maar waar voor staat dat eigenlijk en wat moet ik daar dan precies invullen?

Bedankt,

Sick-Boy

Legacy Member
In plaats van
SELECT * FROM database.tabel
kan je dan schrijven
SELECT * FROM tabel
Ik denk dat de uitvoersnelheid hierdoor verbetert.

Cycloon

Legacy Member
Een schema is meer een soort van namespace binnen 1 databank. Zo kan je verschillende tabellen toch dezelfde naam geven, zolang ze niet in hetzelfde schema zitten. Naar uitvoersnelheid e.d. zal je totaal geen verschil merken.

Elk dbms geeft meestal wel een net iets andere definitie aan een schema.

Sick-Boy

Legacy Member
Cycloon zei:
Een schema is meer een soort van namespace binnen 1 databank. Zo kan je verschillende tabellen toch dezelfde naam geven, zolang ze niet in hetzelfde schema zitten. Naar uitvoersnelheid e.d. zal je totaal geen verschil merken.

Elk dbms geeft meestal wel een net iets andere definitie aan een schema.

Wordt die select_db dan niet elke keer intern uitgevoerd? Met andere woorden: bij elke query ten opzichte van een keer bij het opzetten van de connectie.

Cycloon

Legacy Member
Selecteren van een databank staat los van het selecteren van een schema. Als je geen schema selecteert wordt gewoon het standaard schema gebruikt.

Edit: Toch wat meer informatie gezocht over schema's in MySQL, zoals ik eigenlijk al eerder dacht kent MySQL niet echt "schema's" zoals ze in bv IBM DB2 gedefinieerd zijn. In MySQL doet dit inderdaad niet meer dan een database selecteren, de constante naam is nogal slecht gekozen.

Sick-Boy

Legacy Member
Ik wist niet goed wat bedoeld wordt met een schema, dus heb ik het even opgezocht. Wat ik gevonden heb op de site van MySQL beweert dat database en schema synoniemen zijn. Op andere sites wordt er dan weer gepraat over relatiediagrammen.

Zoals ik het nu lees, bestaat er een database WROX_DATABASE waar elke tabel begint met het prefix WROX_.
De naam van de constante DB_SCHEMA is misschien wat slecht gekozen.

Cycloon

Legacy Member
Ah ik was net ook een edit aan het maken. We zijn dus tot dezelfde constatie gekozen :p

shopshop

Legacy Member
De schrijven zal van een andere programmeer achtergrond komen, misschien omdat hij ook OOP in zijn boek brengt.

Ik heb dat boek dan eventjes laten liggen want het werd een beetje verwarrend.

Bedankt
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan