ja, det ved jeg men access er jo heller ikke en direkte web programmering (ved det godt: heller ikke MySQL) men bare noget med en database men kan tilknytte og MySQL er jo ikke lige det vel !
der er meget man ikke kan i MySQL !! som man kan i access og i SQL om ardre databaser, - jo flere indbyggede funktioner der er i en database jo langsommere arbejder den (selvfølgelig). Hos mysql kommer hastighed før antallet af funktioner - moget der absolut ikke kendetegner Windows (baseret) produkter - der for MySQL få funktioner og stor hastig.
Jeg er endnu ikke stødt på nogen relationel database manager, der ikke kunne lave sammensatte nøgler. Det er en basal del af den relationelle datamodel.
Det gælder også MySQL. Du kan lave sammensatte nøgler således (beklager hvis der er syntaksfejl):
CREATE TABLE person ( fornavn VARCHAR(30) NOT NULL, efternavn VARCHAR(30) NOT NULL, adresse VARCHAR(30),
PRIMARY KEY(fornavn, efternavn) );
Eneste krav for en sammensat nøgle er, at nøglen ikke må indeholde NULL værdier (igen er dette gældende for den relationelle model og ikke blot for MySQL).
Ovenstående eksempel er måske lidt søgt, så for lige at uddybe:
Sammensatte nøgler er rigtig gode, hvis man skal lave en mange-mange relation mellem to tabeller.
Eksempel: Sælger-kunde relation. En sælger kan have flere kunder, og den samme kunde kan godt få besøg af flere forskellige sælgere (en typisk mange-mange relation).
CREATE TABLE saelger ( saelger_id INT(11) NOT NULL AUTO_INCREMENT, navn VARCHAR(60) NOT NULL, etc..., PRIMARY KEY(saelger_id) );
CREATE TABLE kunde ( kunde_id INT(11) NOT NULL AUTO_INCREMENT, navn VARCHAR(60) NOT NULL, etc..., PRIMARY KEY(kunde_id) );
Relationen implementeres så som en tabel med en sammensat nøgle:
CREATE TABLE saelger_kunde ( saelger_id INT(11) NOT NULL, kunde_id INT(11) NOT NULL, PRIMARY KEY(saelger_id, kunde_id), UNIQUE KEY(kunde_id, saelger_id) );
Nogen vil sikkert spørge, hvorfor jeg laver den sidste UNIQUE KEY. Hvis man nu har brug for at søge i tabellen saelger_kunde, hvor ens søgekriterie er kunde_id og ikke saelger_id, så ville database manageren ikke kunne benytte indeks til søgningen uden denne nøgle.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.