Pourquoi SQL Server ne prend pas en charge les contraintes de clé étrangère sur les vues?

12

Je sais que SQL Server ne prend pas en charge l'utilisation d'une vue comme référence pour une contrainte de clé étrangère, y a-t-il une raison (c'est-à-dire quelque chose à voir avec le modèle relationnel), c'est le cas? Il semble que ce serait utile ...

jmoreno
la source
3
J'ai posé une question connexe (pas le pourquoi mais comment cela pourrait être fait avec d'autres façons): Existe-t-il un SGBD qui autorise une clé étrangère qui référence une vue (et pas seulement des tables de base)? Cela a probablement à voir avec la complexité de la mise en œuvre d'une telle fonctionnalité. Le modèle relationnel convient parfaitement à un tel concept.
ypercubeᵀᴹ

Réponses:

13

Cela ne pose aucun problème fondamental, car les tables et les vues sont toutes deux des variables de relation dans le modèle relationnel. Les contraintes de clé étrangère ne sont qu'une sous-classe particulière de contraintes générales, que SQL standard implémente en utilisant CREATE ASSERTIONdonc il n'y a pas de difficulté particulière de langage SQL non plus.

Selon cet élément Connect (plus disponible et non archivé), c'est simplement une question de priorité. Si vous trouvez cette fonctionnalité utile, votez pour l'article et ajoutez en particulier les détails de votre cas d'utilisation dans les commentaires.

Paul White 9
la source