2011-03-10 4 views
0

J'utilise linq to sql .dbml,clé étrangère dans la base de données

Puis-je savoir quel est le meilleur moyen d'ajouter une contrainte de clé étrangère à la base de données? ALTER TABLE Staffs Add CONSTRAINT fk_Staffs FOREIGN KEY(UserId) REFERENCES Users(Id);

Je peux écrire cela sans problème. Mais quand ma table de base de données augmente, j'ai du mal à maintenir le script étranger Add Constraint. Chaque fois que j'ai plusieurs mises à jour dans les colonnes de la base de données, je vais me casser la tête pour mettre à jour ces scripts.

Pourrait-il y avoir un processus simple pour cela? Dans le .dbml, je peux faire glisser et déposer l'association pour ajouter la clé étrangère, je me demande s'il y a un moyen que je puisse exporter cette clé étrangère dans un script qui ressemble à ce que j'ai écrit ci-dessus? C'est bon quand je veux faire le déploiement.

Ou dois-je écrire l'alter script et le mettre à jour chaque fois qu'il y a des changements sur les tables? s'il vous plaît avis

+0

Quel type de base de données utilisez-vous? –

+0

Je ne comprends pas très bien: vous devez appliquer cette commande ** une fois ** à votre base de données et vous devriez en avoir fini avec elle ... –

+0

J'utilise MSsql. Oui, mais que se passe-t-il si le nom de la colonne de la base de données est modifié? vous devez sûrement aller à l'alter script pour mettre à jour la colonne. – VeecoTech

Répondre

1

Vous avez seulement besoin de faire cela une fois par mise à jour de base de données qui change réellement une relation FK.
Dans le contexte d'un refactoring de base de données, ce n'est généralement pas une grande partie du refactoring.

Mais si vous n'aimez pas écrire vos scripts, vous pouvez utiliser le concepteur de table i SQL Management Studio.

  1. table clic droit -> Conception
  2. Faites un clic droit sur la colonne de base de données appropritate (une des lignes du concepteur) -> Relations
  3. Dans la boîte de dialogue, ajouter une nouvelle relation et de sélectionner les tables connexes et colonnes dans l'éditeur de propriétés.
  4. Terminé.
1

C'est la bonne façon de le faire. Vous pouvez également le faire dans le concepteur comme écrit dans une autre réponse ici, mais de cette façon, si vous devez promouvoir du développement à la production, vous devez le faire à la main, ce qui est très fastidieux et peut facilement conduire à des erreurs.

Un compromis peut être d'utiliser le concepteur pour faire les changements et dans le studio de gestion SQL, cliquez avec le bouton droit de la souris et sélectionnez «Objet de script ...». Que vous n'avez pas à taper autant.

Vous mentionnez un changement de noms de table. Eh bien, cela ne devrait pas arriver si souvent! Si cela arrive souvent, je vous conseille de créer des conventions de nommage avec votre équipe sur la façon de nommer vos colonnes (et de les coller) et la quantité de travail sera limitée.

Questions connexes