127 votes

Un guide du débutant à la conception de base de données SQL

Connaissez-vous une bonne source pour apprendre comment concevoir SQL solutions?

Au-delà de la langue de base de la syntaxe, je suis à la recherche de quelque chose pour m'aider à comprendre:

  1. Quelles sont les tables à construire et à les relier
  2. Comment la conception pour les différentes échelles (petite APPLICATION client à un énorme distribué site web)
  3. Comment écrire efficace / efficace / élégant requêtes SQL

60voto

inspite Points 8872

J'ai commencé avec ce livre: Conception de Base de données Relationnelle Clairement Expliqué (Morgan Kaufmann Série dans les Systèmes de Gestion des Données) (Broché) par Jan L. Harrington et l'a trouvé très clair et utile

et comme vous vous levez à la vitesse de celui-ci était bien trop Systèmes de Base de données: Une Approche Pratique pour la Conception, la mise en Œuvre et de Gestion (International Computer Science de la Série) (Broché)

Je pense que SQL et de la base de données de conception sont différents (mais complémentaires) des compétences.

40voto

Julius Points 470

J'ai commencé avec cet article

http://en.tekstenuitleg.net/articles/software/database-design-tutorial/intro.html

C'est assez concis compaired à la lecture d'un livre entier, et il explique les bases de la conception de base de données (normalisation, de types de relations) très bien.

28voto

JeeBee Points 11882

L'expérience compte pour beaucoup, mais en termes de conception de tableau vous pouvez apprendre beaucoup de la façon dont Orm comme Hibernate et Graal fonctionner de voir pourquoi ils font les choses. En outre:

  1. Différents types de données distincts - ne pas stocker les adresses dans votre tableau de commande, un lien vers une adresse dans une autre table des adresses, par exemple.

  2. Personnellement, j'aime avoir un entier long ou clé de substitution sur chaque table (qui contient des données, et non pas ceux qui relient les différents tableaux, e,g., m:n relations) qui est la clé primaire.

  3. J'aime aussi avoir un être créé et modifié colonne de type timestamp.

  4. Veiller à ce que chaque colonne que vous n' "où la colonne = val" dans toute requête a un index. Peut-être pas le plus parfait de l'indice dans le monde pour le type de données, mais au moins un indice.

  5. Configurer vos clés étrangères. Également mis en place SUR SUPPRIMER et MODIFIER les règlements, le cas échéant, à la cascade ou set null, selon votre structure de l'objet (si vous avez seulement besoin de supprimer une fois à la "tête" de votre arbre d'objets, et tout ce qui de l'objet de sous-objets sont supprimés automatiquement).

  6. Si vous voulez modularise votre code, vous pouvez modularise votre base de données de schéma - par exemple, c'est les "clients" de la zone, c'est les "ordres" de la zone, et c'est les "produits" de la zone, et l'utilisation de rejoindre/lier les tables entre elles, même si elles sont 1:n les relations, et peut-être dupliquer les informations importantes (c'est à dire, dupliquer le nom du produit, le code, les prix dans votre order_details tableau). Lire sur la normalisation.

  7. Quelqu'un d'autre va recommander exactement l'inverse pour certains ou de tous les ci-dessus :p - jamais seul vrai moyen de faire certaines choses, hein!

14voto

user2287824 Points 31

6voto

Dickon Reed Points 1835

La tête la Première SQL est une excellente introduction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X