Est-ce que l'auto-référencement de table est autorisé dans MySQL ?

Exemple : j'ai une table contenant des unités dans mon projet.
Je désire que cette table contiennent ses propres valeurs de conversion vers l'unité standard d'un type donné:

Par exemple: la ligne
kg - kilogramme - poids - 2 - 1000.0 - g

fait donc référence à la ligne
g - gramme - poids - 2 - 1.0 - g
(qui est l'unité standard du poids).

Donc, est-ce que cette table est correcte et envisageable ?



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE Unite (
  unite              VARCHAR NOT NULL AUTO_INCREMENT,
  description        VARCHAR NULL,
  type_2             ENUM NULL DEFAULT distance, surface, volume, poids, autre,
  decimales          INTEGER UNSIGNED NULL,
  facteur_conversion FLOAT NULL,
  unite_conversion   VARCHAR NOT NULL,
  PRIMARY KEY(unite),
  FOREIGN KEY(unite_conversion)
    REFERENCES Unite(unite)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);
Mais qu'en est-il de la 1ère ligne qui sera créée ? Puisqu'aucune instance n'existe encore ?

Peut-être dois-je enlever le NOT NULL du champs unite_conversion ?