Ik ben wat aan het experimenteren met InnoDB en foreign keys, maar ik loop tegen iets aan dat ik niet helemaal begrijp.
Ik gebruik de volgende tabellen:
mcdronkz_languages
mcdronkz_newsitems
mcdronkz_newsitems_trans
Ik gebruik voor mcdronkz_newsitems_trans een compound primary key, die samengesteld is uit nitItem en nitLanguage. Zo krijg je dus een unieke combinatie.
Nu heb ik twee foreign keys in mcdronkz_newsitems_trans, van nitItem > niID en van nitLanguage > laID, logisch natuurlijk.
Maar als ik die twee keys aangemaakt heb krijg ik er een extra indice bij, een index voor nitLanguage. Waarom wordt er niet gewoon door beide foreign keys gebruik gemaakt van die compound primary key ? Kan dit niet ?
't Doet nu trouwens wel wat ik wil hoor, maar ik vroeg me gewoon af waarom er een extra index gemaakt moet worden.
Ik gebruik de volgende tabellen:
mcdronkz_languages
code:
1
2
3
4
5
6
| +------------+ | Field | +------------+ | laID | | laLanguage | +------------+ |
mcdronkz_newsitems
code:
1
2
3
4
5
6
7
8
| +------------+ | Field | +------------+ | niID | | niDateTime | | niTitle | | niText | +------------+ |
mcdronkz_newsitems_trans
code:
1
2
3
4
5
6
7
8
| +-------------+ | Field | +-------------+ | nitItem | | nitLanguage | | nitTitle | | nitText | +-------------+ |
Ik gebruik voor mcdronkz_newsitems_trans een compound primary key, die samengesteld is uit nitItem en nitLanguage. Zo krijg je dus een unieke combinatie.
Nu heb ik twee foreign keys in mcdronkz_newsitems_trans, van nitItem > niID en van nitLanguage > laID, logisch natuurlijk.
Maar als ik die twee keys aangemaakt heb krijg ik er een extra indice bij, een index voor nitLanguage. Waarom wordt er niet gewoon door beide foreign keys gebruik gemaakt van die compound primary key ? Kan dit niet ?
't Doet nu trouwens wel wat ik wil hoor, maar ik vroeg me gewoon af waarom er een extra index gemaakt moet worden.
[ Voor 5% gewijzigd door mcdronkz op 17-04-2008 01:30 ]