J'ai un modèle de simulation de série temporelle qui a plus de 10 variables d'entrée. Le nombre d'instances de simulation distinctes serait supérieur à 1 million, et chaque instance de simulation génère quelques lignes de sortie chaque jour.Contrainte unique sur plus de 10 colonnes
Pour enregistrer le résultat de la simulation dans une base de données relationnelle, j'ai conçu des tableaux comme celui-ci.
créer la table SimulationModel (
entier simul_id clé primaire,
chaîne/numérique input0,
chaîne input1/numérique,
...)
créer table SimulationOutput (
dt DateTime clé primaire,
entier simul_id clé primaire,
Output0 numérique,
...)
Pour chaque modèle est unique, j'envisage des moyens comme ci-dessous.
mettre une contrainte unique sur toutes les colonnes d'entrée de la table SimulationModel
nouvelle conception de table SimulationModel aux colonnes d'entrée du groupe en 2 ~ 3 colonnes et mettre une contrainte unique sur ces colonnes groupées. (En faisant une valeur de chaîne longue comme "input0_input1_input2")
oublier la contrainte côté serveur et faire le travail du côté de l'application.
Comment pensez-vous de ces options?
N'y a-t-il aucun problème à utiliser un index unique sur plus de 10 colonnes avec des millions de lignes?
Existe-t-il une autre façon de recommander?
(j'utiliser postgresql)
Deux tables vont être jointes par simul_id. Ma question est de savoir comment rendre unique la combinaison de toutes les variables d'entrée. –
Alors chaque modèle de simulation sera différent des autres? Je pense que le plus simple est de le faire dans votre application, car si vous avez besoin d'ajouter une autre entrée, vous devrez recréer les bases de données. – Keeper