Disons que je les 2 tableaux suivants dans une base de données:Comment séparer correctement les tables remplies automatiquement des tables remplies manuellement dans SQL Server?
[Movies] (Scheme: Automatic)
----------------------------
MovieID
Name
[Comments] (Scheme: Manual)
----------------------------
CommentID
MovieID
Text
La table « Films » est mis à jour par un service toutes les 10 minutes et la table « Commentaires » est mise à jour manuellement par les utilisateurs de la base de données.
Normalement, vous créez simplement une simple relation de clé étrangère entre les deux tables avec des mises à jour en cascade et des suppressions, mais dans ce cas je veux pouvoir conserver les données saisies manuellement même si le film auquel elle fait référence est supprimé (le service de mise à jour n'est pas si fiable). Cela ne devrait poser problème que dans les relations un-à-plusieurs d'une table automatique à une table manuelle. Comment sépareriez-vous le manuel et les parties automatiquement remplies de la base de données?
Je comptais d'ajouter une clé étrangère qui ne maintient pas l'intégrité et referencial que les mises à jour des cascades, pas des suppressions. Mais y a-t-il des pièges dont je devrais être conscient en le faisant de cette façon? Je veux dire, sauf le fait que je pourrais finir avec certaines des données manuelles qui ne font référence à rien.
Modifier/Précision:
Juste pour clarifier. Les tables d'exemples sont entièrement composées. En réalité, la base de données contiendra des objets tels que des serveurs, des applications, des notes d'application, des numéros de versions, etc. Les informations relatives au serveur seront automatiquement renseignées, mais certains détails de l'application seront renseignés manuellement. Ce pourrait être des informations comme des configurations spéciales et autres. Même si l'enregistrement du serveur est supprimé, les notes d'application sur ce serveur sont toujours valables et ne doivent pas être supprimées.
Je pense que vous avez raison, il est probablement préférable de marquer supprimé comme tel au lieu de les supprimer réellement. Cela rendra également la logique dans mes entités commerciales plus simple et plus facile à générer automatiquement. Merci. – JohannesH