1. L'utilisation de champs dans la conception de bases de données
Dans la conception de certains tableaux, il existe des paragraphes couramment utilisés, qui sont fondamentalement devenus un standard dans les grands systèmes, que vous pouvez souvent voir. ces Traces de champs, bien que les noms des champs puissent varier. Les champs couramment utilisés sont divisés dans les catégories suivantes :
1.Champ QUI
Ce type de champ est principalement utilisé pour enregistrer les informations de changement d'opération de chaque ligne d'enregistrements, comme par exemple qui a ajouté ceci rangée d'enregistrements et qui l'a fait Modifications, etc., la description détaillée est la suivante :
|
Type | Description | |||||||||||||||
LAST_UPDATE_DATE | DATE | Date de dernière modification | LAST_UPDATED_BY | NUMBER(15) | Dernière modification par | ||||||||||||
CREATION_DATE | DATE Date de création
| tr>||||||||||||||||
CREATED_BY | NUMBER(15) | Créateur |
Nom du champ | Type | Description |
STATUT | NUMÉRO | Statut |
START_DATE | DATE | Date de début effective |
END_DATE | DATE | Date de fin valide |
Je. Statut
Ce champ est généralement exprimé en type numérique, 0 signifie invalide, 1 signifie valide Bien entendu, lors de l'utilisation, ces deux valeurspeuvent être échappées et affichées comme "valide" et "invalide". . N'affecte pas les méthodes de stockage.
L'invalidation ne signifie pas la suppression. Le contenu expiré peut être restauré à une utilisation normale après ajustement par le programme de gestion et le statut devient valide.
II. Date de début valide
Si ce champ est renseigné avec une valeur spécifique, les informations ne seront valides que lorsque le temps dépasse cette date, les informations seront automatiquement traitées comme invalides. notez que si ce champ est laissé vide, il doit être traité en ignorant cette vérification de condition, ce qui peut assurer la flexibilité du programme.
III. Date de fin de validité
La signification spécifique est la même que ci-dessus, sauf qu'après cette période, le contenu sera traité comme invalide.
3. Suppression logique
Il existe généralement deux méthodes de suppression dans un système de base de données : la suppression physique et la suppression logique. La suppression dite physique signifie utiliser directement la suppression et d'autres commandes dans la base de données pour supprimer réellement les données de la base de données. . , ce type de suppression ne permettra pas de récupérer les données par les canaux normaux. Bien qu'il puisse réduire partiellement le volume global des données, il n'est pas propice au suivi d'audit ; marqué. Autrement dit, l’attribution d’une valeur à un certain champ indique que l’enregistrement a été supprimé.
La logique de traitement de suppression logique n'est utilisée que par l'application elle-même, car les données existent toujours dans la base de données.
Les champs concernés sont les suivants :
|
Type | Description | ||||||||||||
SUPPRIMÉ | NUMÉRO | Supprimer | ||||||||||||
DELETE_DATE | DATE | Supprimer l'heure | ||||||||||||
DELETED_BY | NUMÉRO | Supprimer une personne |
Je. Indicateur de suppression
Ce champ a deux valeurs, 0 signifie normal, 1 signifie supprimé.
Après avoir marqué la marque de suppression, toutes les instructions de requête doivent également ajouter la condition delete=0 dans la condition de jugement, sinon cela provoquera des erreurs majeures.
II. L'heure de suppression
est utilisée avec l'indicateur de suppression pour indiquer l'heure de suppression. Vous pouvez utiliser l'heure actuelle du serveur et la remplir avec sysdate.
III. Personne de suppression
Semblable à la dernière personne de modification, l'opérateur spécifique de la suppression doit être enregistré
La suppression est différente du bit de drapeau La méthode du bit de drapeau est utilisée. ne peut pas afficher les données, le personnel de gestion en arrière-plan Le statut peut également être ajusté via le programme de gestion, mais l'indicateur de suppression est différent Une fois la suppression confirmée, l'enregistrement doit être compris comme n'existant pas pour l'ensemble de l'application.
4. Champ d'auto-incrémentation
Le champ dit d'auto-incrémentation fait référence à un champ qui peut être automatiquement augmenté au fil de l'utilisation.
La valeur de ce champ n'a généralement pas de signification claire et n'est utilisée que pour un identifiant unique. Ce champ est généralement défini comme une clé primaire.
Si l'application cible uniquement Oracle et ne prend pas en compte l'indépendance de la base de données, alors la séquence est le meilleur choix. Pour ceux qui utilisaient d'autres bases de données telles que MSSQL dans le passé, l'utilisation d'Oracle est tout simplement trop laborieuse. Il faut beaucoup d'efforts pour créer un champ à incrémentation automatique. Cependant, de ce fait, cela pose également des problèmes par rapport aux autres. les bases de données ne peuvent pas Par rapport aux avantages, par exemple, un système de commande a à la fois des en-têtes de commande et des lignes de commande. Généralement, l'en-tête de commande est inséré en premier, puis les lignes de commande sont insérées. Pour les champs à incrémentation automatique dans les bases de données telles que MSSQL. des informations spécifiques ne peuvent être connues qu'après l'insertion. Quelle est la valeur d'ID de L'essentiel est que l'effet de séquence est très élevé et qu'il n'y a pas lieu de s'inquiéter des problèmes de performances.
5. Champs flexibles
Lors de la conception de la structure des tables de la base de données, il est préférable de réserver quelques champs de rechange, car avec l'utilisation du système, il est généralement nécessaire d'ajouter des champs. L'avantage des champs réservés est qu'ils peuvent être activés uniquement lorsque cela est nécessaire. Les opérations DDL ne sont pas nécessaires. Le risque de maintenance ultérieure de la base de données est très faible. De plus, les opérations DDL générales entraîneront l'échec de VIEW/PACKAGE et d'autres programmes en cascade. . Champs réservés Si vous ajoutez des champs élastiques, vous n'aurez pas ce problème.
Les champs réservés peuvent également être divisés en trois types selon le type : type de chaîne, type numérique et type de date. Vous pouvez réserver 10 champs pour chaque type, ou décider en fonction des besoins. :
NUMBER_ATTRIBUTE1
STRING_ATTRIBUTE1
DATE_ATTRIBUTE1
Si le champ élastique n'est pas activé, prendra-t-il trop d'espace de stockage ? La réponse est non, car dans la structure de cette grande base de données, ce n'est que lorsqu'un champ est réellement utilisé qu'il occupera l'espace réel. Sinon, ce n'est qu'une "description" et n'occupera pas d'espace réel, il n'y aura donc pas de gaspillage d'espace.
6. Champ divisé
Ce n'est pas un type de champ, mais cela signifie que lors de la conception de la table, une grande table peut être divisée de manière appropriée en différentes petites tables pour le stockage. Par exemple, la table utilisateur peut inclure des noms de connexion et un mot de passe. , nom, date de naissance et une série de champs. Dans certains cas, le nombre d'attributs de membre inclus peut atteindre des centaines.
Lorsque la quantité de données est petite, quel que soit le type de stockage, il n'y aura aucun problème de performances, mais lorsque la quantité de données est relativement importante, les problèmes de performances doivent être pris en compte. Si l'index est raisonnable, quelle que soit la quantité de données, la vitesse générale de requête ne sera pas trop lente. Cependant, dans certaines circonstances particulières, lorsque l'index ne peut pas être utilisé, le FTS (appelé analyse complète de la table) le fera. se produire. Ensuite, analysez une petite table et le temps nécessaire pour analyser une grande table est complètement différent, il est donc recommandé de stocker les tables plus grandes séparément et d'extraire plusieurs champs couramment utilisés séparément, de sorte que même si la table entière est analysée, l'efficacité peut être améliorée. être mieux maîtrisé.
Lors de l'utilisation, tant que la table principale et la sous-table ont des index, les combiner pour interroger est fondamentalement la même qu'une vraie grande table, bien que les performances soient nettement plus lentes qu'une vraie grande table. Un peu , mais par contre, comparé aux améliorations de performances, cela en vaut la peine.
Actuellement, certains grands systèmes adoptent cette méthode de fractionnement
2. Utilisation raisonnable des vues
La vue est une représentation de la table de base, elle n'est pas physiquement stockée Les données sont uniquement appelé à partir de la table de base en cas de besoin. Il peut être compris comme un outil qui encapsule un SQL pour une utilisation facile.
Les vues présentent de nombreux avantages :
1. Commodité
Si une requête est complexe, il sera très gênant de la référencer dans le programme. Surtout lorsque ce SQL est appelé à plusieurs reprises dans un programme, le programme deviendra très volumineux si le SQL est encapsulé dans une vue. Rend l’ensemble du programme très frais et propre.
2. Flexibilité
Lorsqu'une table est référencée par plusieurs programmes, si la structure de la table change, alors tous les programmes doivent effectuer les ajustements correspondants, et la charge de travail est très importante Si seulement Si une vue est référencée, nous seulement. Vous devrez modifier la vue correctement et tous les programmes n'auront aucun problème.
3. Sécurité
Une vue ne peut inclure qu'un nombre limité de champs d'une table de base, de sorte que lorsque les autorisations sont publiques, les utilisateurs utilisant la vue peuvent visualiser d'autres champs confidentiels de la table de base.
Les vues présentent de nombreux avantages. Il est recommandé d'utiliser davantage les vues dans le travail réel.
3. PACKAGE
PACKAGE est un package de programme. Sa caractéristique est qu'il peut inclure des variables, des fonctions et des procédures stockées dans un seul package, et que toutes les variables publiques peuvent être partagées dans l'ensemble du package. , c'est son endroit le plus pratique.
Une autre caractéristique du package est que l'interface externe devient plus simple. Quelle que soit la complexité du package à l'intérieur, il suffit d'ouvrir une interface limitée vers le monde extérieur.
Ces caractéristiques du package peuvent être trouvées dans n'importe quel document. Je n'entrerai pas dans les détails ici, je souligne seulement un point ici, qui concerne l'invalidation du package lorsque le programme aspx fait référence à l'oracle. package, cela est dû au cache système, il enregistrera le statut invalide du package. Si le statut d'un package a été recompilé de invalide à valide, alors l'état de l'enregistrement du cache IIS peut ne pas être automatiquement mis à jour et le sera. sera toujours traité comme invalide, ce qui entraînera une erreur système. Afin d'éviter ce genre d'erreur, j'ajoute généralement une fonction publique au package, nommée STATUS. Cette fonction renvoie simplement un chiffre 1. Avant d'appeler d'autres fonctions du package, appelez cette fonction pour vérifier l'état actuel du package. Si 1 peut être renvoyé correctement, vous pouvez continuer les opérations suivantes. Si le retour est vide, cela signifie qu'il y a un problème avec le package actuel et qu'il peut y avoir une interaction pour inviter l'utilisateur à le gérer. Lorsque le traitement de votre transaction nécessite la coordination de plusieurs packages, il est très pénible si le package précédent a été traité avec succès mais que le package ultérieur ne peut pas passer, car cela peut rendre la transaction incomplète, il est donc très nécessaire de vérifier l'état. de tous les colis à l'avance et éliminer tous les dangers possibles à l'avance.
4. Index
Le rôle de l'index est très évident, ce qui peut grandement améliorer la vitesse de vérification, notamment pour les grandes tables, s'il n'y a pas d'index, une analyse complète de la table sera nécessaire. . Il s'agit d'une action très fastidieuse, les index correspondants doivent donc être créés pour accélérer le processus.
Mais parfois, l'index aura un impact négatif, comme un grand nombre d'opérations d'insertion ou de modification et de suppression, car chaque petite action modifiera également l'index en même temps, ce qui réduira considérablement l'efficacité des opérations DML, donc, avant un grand nombre d'opérations DML, il est recommandé de supprimer d'abord l'index, puis de rétablir l'index une fois l'opération terminée, ce qui peut faire gagner beaucoup de temps en termes de temps total.
Pour plus d'articles liés aux conseils de développement de programmes Oracle, veuillez faire attention au site Web PHP chinois !