2010-12-12 6 views
0

Je viens juste de commencer à utiliser SQL, donc je n'ai aucune idée de la façon de travailler avec des types de données non standard. Je travaille avec MySQL ... Dites, il y a 2 tables: Stats et Commun. Le tableau commun ressemble à ceci:MySQL. Travailler avec Integer Data Interval

CREATE TABLE Common (
    Mutation VARCHAR(10) NOT NULL, 
    Deletion VARCHAR(10) NOT NULL, 
    Stats_id ??????????????????????, 
    UNIQUE(Mutation, Deletion)); 

Au lieu de ? symboles il doit y avoir un certain type que références sur le Stats tableau (Stats.id). Le problème, c'est que ce type doit permettre de sauvegarder des données dans un tel format: 1..30 (intervalle entre 1 et 30). Selon ce type, mon idée était de raccourcir la longueur de la table commune. Est-il possible de faire cela, y a-t-il des idées différentes?

Répondre

1

En supposant que Stats.id est un INTEGER (sinon, modifiez les éléments ci-dessous, selon le cas):

first_stats_id INTEGER NOT NULL REFERENCES Stats(id) 
last_stats_id INTEGER NOT NULL REFERENCES Stats(id) 

Étant donné que votre table contient deux champs VARCHAR et un index unique sur eux, ayant un champ entier supplémentaire est le moins de vos soucis en ce qui concerne l'utilisation de la mémoire (sérieusement, un champ entier représente seulement 1 Go de mémoire pour 262 millions de lignes).

+0

Merci, Victor Nicollet. – Dmitry