Quel est le moyen le plus efficace pour stocker un tableau d'entiers dans une colonne MySQL?

J'en ai deux tables

Un:

plant_ID | name.
1        | tree
2        | shrubbery
20       | notashrubbery

B:

area_ID | name    | plants
1       | forrest | *needhelphere*

maintenant, je veux le domaine de stocker n'importe quel nombre de plantes, dans un ordre précis et de certaines plantes peut se montrer un certain nombre de fois:. e.g 2,20,1,2,2,20,1

Quel est le moyen le plus efficace de stocker cette variété de plantes?
En gardant à l'esprit j'ai besoin de faire en sorte que si je effectuer une recherche pour trouver des zones avec des plantes 2, je n'ai pas les domaines qui sont les e.g 1,20,232,12,20 (pad avec les principaux 0s?) Quelle serait la requête pour qui?

si ça aide, supposons que j'ai une base de données de plus de 99999999 plantes différentes. Et oui, cette question n'a rien à voir avec les plantes....

Question Bonus
Est-il temps de faire un pas loin de MySQL? Est-il mieux DB pour gérer cela?

Si seulement MySQL laissez-nous avons plusieurs valeurs pour une seule colonne...
Tout moment vous vous sentez le besoin de combiner les données dans un seul champ, coup de pied: Vous êtes à la violation de forme normale et ont besoin d'ajouter un autre tableau pour gérer correctement la situation. (Voir le Matchu et mgrove réponses ci-dessous).
si vous vous intéressez un non-relationnelles moyen de stocker ces données (c'est à dire une véritable collection/tableau), regarder dans un OODBMS comme db4o.
Question: Vous pouvez prendre un coup d'oeil à MongoDB
Étant donné que vous avez donc beaucoup de plantes, plusieurs-à-plusieurs sans doute mieux, mais si vous avez eu moins de plantes, vous pourriez envisager de PostGres, qui a de la Matrice de types de champs: postgresql.org/docs/8.0/static/arrays.html -- je vais aller sur une branche et dire que la normalisation n'est pas toujours la bonne réponse.

OriginalL'auteur Moak | 2010-07-16