Hallo,
Ik heb ooits eens een menu gemaakt vanuit een "voorbeeld" op internet. Ergens van sitepoint dacht ik. Over een tree in 1x uit lezen.
Edit:
deze link: http://www.sitepoint.com/article/hierarchical-data-database
Nu was ik er weer mee bezig en heb ik inmiddels een andere (nieuwere) MySQL draaien, waarmee ik ook InnoDB kan.
Mooi dacht ik, nu kan ik de dus "sub menu" foreign key's maken naar hun parents.
Ik probeerde deze sql:
Dit ging als eerste al "fout", omdat de constraint niet werd aan gemaakt
.
Deze heb ik dus zelf nog een toegevoegd:
Echter geeft me dit niet het gewenste resultaat. Ik kan geen menu items aanmaken met een "null" parent. Wat volgens mij met deze tabel opmaak moet mogen. Tenminste in sql-server moet het zo werken dacht ik...
In de help van MySQL staat nog iets van "[MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]". Ik weet niet of dit hier iets mee te maken heeft.
Weet iemand of dit mogelijk is, of wat ik verkeerd doe?
Ik wil een niet verplichte foreign key hebben. Dus de waarde moet NULL zijn, of voorkomen als primary key.
Ik heb ooits eens een menu gemaakt vanuit een "voorbeeld" op internet. Ergens van sitepoint dacht ik. Over een tree in 1x uit lezen.
Edit:
deze link: http://www.sitepoint.com/article/hierarchical-data-database
Nu was ik er weer mee bezig en heb ik inmiddels een andere (nieuwere) MySQL draaien, waarmee ik ook InnoDB kan.
Mooi dacht ik, nu kan ik de dus "sub menu" foreign key's maken naar hun parents.
Ik probeerde deze sql:
code:
1
2
3
4
5
6
7
8
9
| CREATE TABLE `Menu` ( `MenuID` int( 11 ) NOT NULL AUTO_INCREMENT , `ParentMenu` int( 11 ) default NULL REFERENCES `Menu` (`MenuID`) ON DELETE CASCADE ON UPDATE no ACTION , `Title` varchar( 20 ) NOT NULL default '', `Active` smallint( 6 ) NOT NULL default '0', `Lft` smallint( 6 ) default '0', `Rgt` smallint( 6 ) default '0', PRIMARY KEY ( `MenuID` ) ) ENGINE = InnoDB ; |
Dit ging als eerste al "fout", omdat de constraint niet werd aan gemaakt
Deze heb ik dus zelf nog een toegevoegd:
code:
1
2
| ALTER TABLE `Menu` ADD CONSTRAINT `Menu_ibfk_1` FOREIGN KEY (`MenuID`) REFERENCES `Menu` (`MenuID`) ON DELETE CASCADE ON UPDATE NO ACTION; |
Echter geeft me dit niet het gewenste resultaat. Ik kan geen menu items aanmaken met een "null" parent. Wat volgens mij met deze tabel opmaak moet mogen. Tenminste in sql-server moet het zo werken dacht ik...
In de help van MySQL staat nog iets van "[MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]". Ik weet niet of dit hier iets mee te maken heeft.
Weet iemand of dit mogelijk is, of wat ik verkeerd doe?
Ik wil een niet verplichte foreign key hebben. Dus de waarde moet NULL zijn, of voorkomen als primary key.
[ Voor 7% gewijzigd door Verwijderd op 25-06-2005 13:56 ]