Tabela categorylinks przechowuje wszystkie wpisy typu [[category:abc]], umieszczające stronę w kategorii "abc" (dla której przypisana strona może ale nie musi istnieć). Linki w formie [[:category:abc]] (link nie kategoryzujący, zwróć uwagę na dwukropek) nie są przechowywane w tej tabeli ale są traktowane jako zwykłe linki.
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
| Pole | Typ | Null |Klucz| Domyślnie | Extra |
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
| cl_from | int(10) unsigned | NO | PRI | 0 | |
| cl_to | varbinary(255) | NO | PRI | | |
| cl_sortkey | varbinary(70) | NO | | | |
| cl_timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| cl_sortkey_prefix | varbinary(255) | NO | | | |
| cl_collation | tinyint(4) | NO | MUL | 0 | |
| cl_type | enum('page','subcat','file') | NO | | page | |
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
- cl_from
- Przechowuje page_id artykułu, gdzie lin został umieszczony.
- cl_to
- Przechowuje nazwę(bez prefiksu przestrzeni nazw) docelowej kategorii. Spacje zamieniane są na podkreślenia (_)
- cl_sortkey
- Stores the title by which the page should be sorted in a category list.
- cl_timestamp
- Przechowuje czas kiedy link został ostatnio zaktualizowany w tabeli.
Trzy indeksy aby zwiększyć wydajność:
- Powiązanie pomiędzy cl_from a cl_to (kiedy artykuł będzie edytowany)
- Powiązanie pomiędzy cl_to a pierwszymi 128 bajtami cl_sortkey (aby wyświetlać artykuły w kolejności)
- Powiązanie pomiędzy cl_to a cl_timestamp
[edit] Poprzednie wersje
+--------------+-----------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from | int(10) unsigned| NO | PRI | 0 | |
| cl_to | varchar(255) | NO | PRI | NULL | |
| cl_sortkey | varchar(70) | NO | | NULL | |
| cl_timestamp | timestamp | YES | | CURRENT_TIMESTAMP | |
+--------------+-----------------+------+-----+-------------------+-------+
+--------------+-----------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from | int(8) unsigned | NO | PRI | 0 | |
| cl_to | varchar(255) | NO | PRI | NULL | |
| cl_sortkey | varchar(86) | NO | | NULL | |
| cl_timestamp | timestamp | YES | | CURRENT_TIMESTAMP | |
+--------------+-----------------+------+-----+-------------------+-------+
+--------------+-----------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from | int(8) unsigned | NO | PRI | 0 | |
| cl_to | varchar(255) | NO | PRI | NULL | |
| cl_sortkey | varchar(255) | NO | | NULL | |
| cl_timestamp | timestamp | YES | | CURRENT_TIMESTAMP | |
+--------------+-----------------+------+-----+-------------------+-------+