Korrekt anvendelse af nøgler
HejJeg er lidt vrøvl med mine nøgler, som du gerne må hjælpe mig med.
Jeg har 3 tabeller:
CREATE TABLE PLUSPROFIL_KATEGORIER (
ID int(11) NOT NULL auto_increment,
PlusprofilID int(11) NOT NULL default '0',
KategoriID int(11) NOT NULL default '0',
PRIMARY KEY (ID)
) TYPE=MyISAM;
CREATE TABLE PLUSPROFIL_ANNONCE (
ID int(11) NOT NULL auto_increment,
MemberID int(11) NOT NULL default '0',
Navn text,
Email text,
Url text,
Firmanavn text,
Gadenavn text,
Husnr text,
Postnr text,
City text,
Telefon text,
Tid text,
Beskrivelse text NOT NULL,
Billede text,
Visninger int(11) NOT NULL default '0',
MaxVisninger int(11) NOT NULL default '0',
Oprettelse date NOT NULL default '0000-00-00',
PRIMARY KEY (ID)
) TYPE=MyISAM;
CREATE TABLE FORUM_MEMBERS (
MEMBER_ID int(11) NOT NULL auto_increment,
M_STATUS smallint(6) default '0',
M_NAME varchar(75) default '',
M_USERNAME varchar(150) default '',
M_PASSWORD varchar(65) default '',
M_EMAIL varchar(50) default '',
M_COUNTRY varchar(50) default '',
M_HOMEPAGE varchar(255) default '',
M_SIG text,
M_VIEW_SIG smallint(6) default '1',
M_SIG_DEFAULT smallint(6) default '1',
M_DEFAULT_VIEW int(11) default '1',
M_CHAT_DEFAULT int(11) default '0',
M_LEVEL smallint(6) default '1',
M_AIM varchar(150) default '',
M_ICQ varchar(150) default '',
M_MSN varchar(150) default '',
M_YAHOO varchar(150) default '',
M_POSTS int(11) default '0',
M_DATE varchar(14) default '',
M_LASTHEREDATE varchar(14) default '',
M_LASTPOSTDATE varchar(14) default '',
M_TITLE varchar(50) default '',
M_SUBSCRIPTION smallint(6) default '0',
M_HIDE_EMAIL smallint(6) default '0',
M_RECEIVE_EMAIL smallint(6) default '1',
M_LAST_IP varchar(15) default '000.000.000.000',
M_IP varchar(15) default '000.000.000.000',
M_FIRSTNAME varchar(100) default '',
M_LASTNAME varchar(100) default '',
M_OCCUPATION varchar(255) default '',
M_SEX varchar(50) default '',
M_AGE varchar(10) default '',
M_DOB varchar(8) default '',
M_HOBBIES text,
M_LNEWS text,
M_QUOTE text,
M_BIO text,
M_MARSTATUS varchar(100) default '',
M_LINK1 varchar(255) default '',
M_LINK2 varchar(255) default '',
M_CITY varchar(100) default '',
M_STATE varchar(100) default '',
M_PHOTO_URL varchar(255) default '',
M_KEY varchar(32) default '',
M_NEWEMAIL varchar(50) default '',
M_PWKEY varchar(32) default '',
M_SHA256 smallint(6) default '1',
PRIMARY KEY (MEMBER_ID),
KEY FORUM_MEMBERS_MEMBER_ID (MEMBER_ID)
) TYPE=MyISAM;
En bruger (FORUM_MEMBERS) kan have 0 til flere annoncer( PLUSPROFIL_ANNONCE), som kan være tilknyttet 0 til flere kategorier (PLUSPROFIL_KATEGORIER).
Problemet:
1) Jeg har ikke så meget forstand på nøgler, så de er sikkert sat forkert op. Hjælp gerne.
2) Det giver store problemer, fordi jeg anvender 2 ID'er, nemlig i PLUSPROFIL_ANNONCE og i PLUSPROFIL_KATEGORIER. Kan det ikke gøres på en anden måde?
Følgende kode giver problemer med de to ID'er (idet er det forkerte ID, som findes):
strSQL="SELECT * from PLUSPROFIL_ANNONCE left join PLUSPROFIL_KATEGORIER on PLUSPROFIL_ANNONCE.ID = PLUSPROFIL_KATEGORIER.PlusprofilID WHERE KategoriID = " & trim(request.queryString("ID") & " ORDER BY PLUSPROFIL_ANNONCE.Visninger")
3) Og hvad er kardinalitet?
