2010-11-17 6 views

Répondre

1

contraintes sur les colonnes. Si vous avez des PK ou des FK sur les colonnes, elles ne peuvent pas (ou ne peuvent pas) être supprimées (facilement) en fonction du fournisseur db. Alors que les cols ne peuvent pas être «utilisés» par l'utilisateur, ils peuvent dépendre d'autres cols/tables. Aussi, tout à fait d'accord avec duffymo. TRÈS dangereux pour permettre aux utilisateurs de choisir de laisser tomber les cols. Oracle a la possibilité de restaurer des cols abandonnés, mais vraiment, voulez-vous aller dans ce sens? Les instructions de dépôt générées automatiquement ont toujours été périlleuses.

1

La plus grande question a peu à voir avec la base de données et tout à faire avec des clients utilise le. Votre application Java pourrait être en mesure de vérifier s'il existe des entrées non nulles dans la colonne, mais elle ne peut pas dire quels clients attendent que la colonne soit là pour SELECTs et UPDATEs.

Je ne connais pas votre cas d'utilisation précis, mais je dirais que c'est généralement une activité pour un DBA et non un utilisateur de votre application. Je conseillerais la prudence.

+0

Le cas d'utilisation implique la suppression des colonnes qui ne sont plus nécessaires et donc nous sommes assurés que la requête existe impliquant cette colonne.Cependant, je suis préoccupé par les facteurs qui devraient être considérés comme si la suppression devrait être mis en file d'attente s'il y a un grand nombre de lignes, etc. – praveen

+0

Toujours faux. C'est quelque chose qui devrait être fait dans une console de gestion de base de données par un DBA, pas votre code d'application. Je conteste l'idée que les utilisateurs et votre code peuvent "savoir" qu'une colonne n'est plus nécessaire. Cela ressemble à un design qui devrait être réexaminé pour moi. – duffymo

2

Etes-vous sûr de faire la bonne chose? À moins que vous n'utilisiez des tables jetables pour que les gens s'amusent ou les utilisent pour étudier, cela ressemble à un design pas très bon.

Une fois les tables définies, leur numéro de colonne ne doit pas changer. Sinon, vous obtiendriez des tables dénormalisées; les clés étrangères peuvent se casser et tout l'enfer se déchaîne à moins que vous ayez de très bonnes contraintes placées sur vos colonnes. Le suivi des colonnes existantes et des requêtes que vous pouvez exécuter mettra beaucoup plus de poids que nécessaire sur votre code JDBC.

Ce n'est pas une question Java ou JDBC, c'est plutôt une question de conception de base de données. Vous devriez parler avec votre DBA à ce sujet.

Questions connexes