Question

Comment vous représenter un temporel plusieurs à-plusieurs dans SQL? Dans des conditions non-temporelles que l'on peut utiliser une table de jonction href="http://en.wikipedia.org/wiki/Junction_table" (aka link / pont / plan) pour connecter les deux côtés.

ajoute le suivi temporel aussi simple que comprenant une colonne ValidStart et ValidEnd sur la table de jonction? Si vous avez fait cela, quelles questions (le cas échéant) avez-vous rencontrées? Y at-il une meilleure méthode pour garder une trace des changements au fil du temps dans ce genre de relation?

Si elle aide à tous, dans mon cas, je suis spécifiquement en utilisant SQL 2008 et les données temporelles n'est pas bitemporal que je suis suivi que le temps valide.

Était-ce utile?

La solution

Je travaille sur un projet (depuis quelques années) qui utilise les données temporelles et temporelles nombreuses à plusieurs relations. Chaque table comporte des colonnes ValidFrom et ValidUntil (dates stockage uniquement).

D'abord, vous devez définir la sémantique des colonnes * valides, à savoir si ValidUntil est inclus ou exclu de la plage de validité. Vous devez également préciser si les dates NULL sont valides et que leur signification est.

Ensuite, vous avez besoin d'un couple de fonctions, telles que dbo.Overlaps2 () et dbo.Overlaps3 () qui reçoivent 2 et 3 plages de dates respectivement, et retour 1 si les plages de dates se chevauchent et 0 sinon.

En plus de cela, je définis les vues pour beaucoup à de nombreuses relations avec dbo.Overlap3 (...) = 1.

Un point supplémentaire est d'avoir un ensemble de fonctions qui calculent la plage de validité effective en fonction des dates dans 2 ou 3 tableaux relatifs.

Je dû récemment ajouter des fonctionnalités pour permettre à un utilisateur d'afficher toutes les données disponibles, ou seulement des données en cours de validité. Je sauverai ce paramètre dans une table d'utilisateurs, associer le SPID à l'utilisateur lors de l'ouverture d'une connexion, et filtrer les enregistrements dans un autre ensemble de vues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top