Je dois être en mesure de faire correspondre les propriétaires potentiels aux animaux abandonnés en fonction de divers critères et emplacements.Comment modéliser les différents critères?
Le propriétaire aura un ensemble de critères particulier. Type d'animal = "chien", race = "Labrador Retriever", l'âge devra être compris entre 1 et 5, sexe = mâle, et ainsi de suite ...
L'animal aura également un ensemble de critères particuliers. Le type d'animal = "Chien", âge = 3, sexe = mâle, race = "Chihuahua".
L'animal pourrait également être: type = "chat", âge = "12", sexe = femelle, race = "tigre". J'ai également un modèle "Location" pour le propriétaire et l'animal (polymorphe) qui contient les informations relatives à l'emplacement de l'animal ou du propriétaire.
Donc cette partie est facile ...
La partie dure (au moins pour moi) est quand je dois préciser des critères différents pour les différents types d'animaux. Donc un animal de type = "chien" peut avoir un critère de "peut aller chercher?" alors qu'un animal de type chat peut avoir un critère de "dégrafé"? et un animal de type "poisson" peut avoir des critères de "motif" avec plusieurs options de ["tacheté", "rayé", "uni"]. Ce que j'ai maintenant est un modèle "animal" avec l'information générique sur les animaux (âge, sexe, race), puis j'ai un modèle de races avec les différentes races par type d'animal, mais je n'arrive pas à comprendre comment extraire les critères qui diffèrent entre les types d'animaux.
Encore une fois, c'est juste une analogie parce que je ne pense pas que mon problème réel aura un sens à quelqu'un d'autre. Ce dont j'ai besoin, c'est de quelques indications dans la bonne direction, peut-être un lien ou deux. Je n'arrive pas à trouver comment faire cela dans Rails sans créer une table séparée pour chaque ensemble de critères, comme dans dog_criteria, cat_criteria, fish_criteria, et ainsi de suite ...
Cela semble être un moyen raisonnable d'y remédier. J'espère ne pas rencontrer de problèmes majeurs! Une question, comment pourrais-je stocker plusieurs attributs d'un paramètre particulier? Comme un hachage dans la table de paramètres? – Shane
Par attributs voulez-vous dire la valeur? Comme le paramètre "Couleur", les attributs "Rouge", "Vert" et "Bleu"? Si c'est le cas, alors je choisirais l'une des deux options: 1) Stockez les valeurs dans une table séparée, avec un ID, ParameterID, "Value", et "Label", puis stockez le "ID" de la valeur appropriée dans le tableau Valeurs de paramètres. 2) Stockez simplement la valeur directement dans la table Parameter Values, et ayez une classe Enum dans votre code pour contrôler la recherche des valeurs appropriées. L'option 2 est plus facile (pas de nouvelles tables). – Nicole