Création de tables ms sql server ou msde

penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 21 juin 2005 à 15:55
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 25 juin 2005 à 08:56
Bonjour à tous,

j'ai une base de données access qui reprend beaucoup trop d'informations concernant des pièces de rechanges pour machines de production.
J'ai eu le dvd d'installation de sql server 2005 beta, du coup je l'ai installé.

Voici la structure de ma base access :


Code:,
----

num,fournisseur,machine,om,ref.fournisseur,désignation,ref.interne,dernière_commande,valeur,valeur_stock,plateau,stock_mini,suivi,cout_piece.
En fait, ce que je voudrais faire, c'est mettre ça dans plusieurs tables (il me semble que ce soit mieux, non?) en sachant ceci :

- je vais utiliser une base de données sql server 2000 (je fais mes tests avec 2005 car j'ai rien d'autre) ou la msde qui est mieux car elle est gratuite ()

Explication des champs

Code:,
----

- num : clé primaire, champ auto incrémenté
- fournisseur : nom du fournisseur de la pièce
- machine : nom de la machine sur laquelle va la pièce.
- om : numéro de référence qui est utilisée uniquement chez un seul des fournisseurs
- ref.fournisseur : c'est la référence qu'à la pièce chez le fournisseur
- désignation : c'est le nom que l'on donne à la pièce dans l'entreprise
- ref.interne : c'est la référence que l'on donne à la pièce à l'intérieur de la société pour pouvoir la localiser ou l'identifier rapidement.
- dernière_commande : date à laquelle on a effectué la dernière commande de cette pièce.
- valeur : valeur de la pièce en Euro
- valeur_stock : c'est la valeur de la pièce multipliée par la quantité en stock.
- adresse : ces pièces sont rangées sur des étagères numérotées (par exemple : B4 = étagère B, sur le 4ème plateau de l'étagère)
- stock_mini : c'est le nombre de fois que cette pièce doit être présente contstamment dans le stock
- suivi : ca me permet d'avoir un suivi des pièces (de type entier)
- cout_piece : me permet de faire un cout total de chaque machine sur l'année par exemple (suivi fois valeur)

Voila, donc je voudrais mettre ça dans plusieurs tables, mais je ne sais absolument pas commen m'y prendre, ni pour organiser ça de la meilleure façon, ni pour ces histoires de clés primaires et tout ça.

Je suis prêt à tout essayer (si possible avec la msde)

18 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 juin 2005 à 19:38
Table fournisseur

ID_fourn (primary key)

nom



Table produit

ID_Produit (Primary key)

ID_FOURn --> Foreign key sur le fournisseur

nom_produit(UNIQUE)

ref_interne (UNIQUE)

stock

stock_mini

valeur piece

derniere_commande









Table Machine

iD_machine (primary key)

emplacement



Table MAchine_produit

ID_Machine FK

ID_produit FK

NB





Les champs calculé cout_piece et prix_stock

ne sont pas en base il faut mieux les calculés a chaque fois

car sinon il faut le sauvegardé a chaque fois (lourd)



Le schema présenté ne gere pas l'archivage (bien sur)



pour la creation des tables cherche des exemples sur internet (il y a plein d'exemple)





Voila
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
22 juin 2005 à 07:22
ça à l'air bien ce que tu propose là, mais n'y a-t-il pas plus simple?
On est obligé de passer par une table machine_produit?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 juin 2005 à 15:53
La table machine produit est obligatoire

si un produit est utilisé plusieurs fois dans une machine



exemple une vis de 10cm est utilisé 50 fois dans tom meuble B



Sion c'est impossible à représenter de facon clair et rapide pour le programme.

Il faut au maximum éviter les doublons ;-)



Voila
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
23 juin 2005 à 08:49
Voici ce que je voudrais obtenir (si c'est possible et viable biensur) :

- une table fournisseur qui reprend :
- num
- nom
- adresse (pas obligé)
- mail
- tel
- fax

- une table pièces qui reprend :
- num
- machine
- ref. fournisseur
- désignation
- dernière commande
- ref. interne
- stock
- valeur
- valeur_stock
- adresse (F43 par exemple)

Il faut savoir (enfin tout le monde le sait) qu'un fournisseur peut fournir plusieurs pièces.

Est-ce possible de faire comme cela?

Evidemment ces tables doivent être reliées, mais je ne sais pas comment je peux faire au mieux pour respecter le schéma que je voudrais et faire que tout fonctionne. idem pour ces histoires de clés primaires...

Une idée?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
23 juin 2005 à 08:51
En plus, j'ai créé mon applic avec VB.net, et dedans, je fais juste un select all d'une de mes tables. En local ca marche nickel, mais quand je met le prog sur une autre machine du réseau, voici l'erreur que je récupère.

J'utilise une instance de msde comme server sql, et quand je l'ai installé, j'ai bien mis DISABLENETWORKPROTOCOL=0
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
23 juin 2005 à 10:52
Salut



Pour gérer le fait qu'un fournisseur peut fournir plusieurs produits

il faut fair une table

Fournisseur_produit

num_produit

num_fournisseur







Pour ton erreur regarde si tu a les droits dbo. sur la machine réseau



Voila
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
23 juin 2005 à 10:58
je regarde ça comment les droits dbo? (et j'ai 4 pc qui accèderont à la db, donc je devrais faire les changement sur ces 4 pc???)

tu ne sais pas me montrer précisement comment faire pour relier toutes les tables ensembles (relations, clés primaires, et tout etout) parce que je ne comprends pas du tout. J'ai bcp de mal avec ça.
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
24 juin 2005 à 01:27
SQL Server 2005 est en béta, il est donc déconseillé de l'utiliser en production pour le moment.
Pour ton problème MSDE est le mieu adapté, tu as un article qui explique bien l'installation et l'utilisation de celui-ci ici :
- http://www.asp-php.net/tutorial/asp.net/sql_msde.php

Pour ce qui est de l'accès à cette base depuis tes postes client, il faut utiliser le mode d'autentification via SQL Server et non en mode intégré windows.

Romelard Fabrice (Alias F___)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
24 juin 2005 à 07:20
ben le problème c'est que j'ai suivi ce tuto à la lettre, voici comment j'ai installé mon instance msde :

code:
setup SAPWD="monMotDePasse" INSTANCENAME="basededonnees" SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0

en local, ca passe nickel, mais pas depuis un poste client
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
24 juin 2005 à 07:23
et voici mon code pour ouvrir ma db et afficher le résultat de mon select dans une datagrid :



'chaine de connexion



Dim Conntectionstr
As
String = "workstation id=JEREMY;packet size=4096;user id=sa;" _


& " data source=JEREMY\basededonnees;persist security info=False"



'déclaration connexion mysql



Dim Connection
As
New SqlConnection


Connection.ConnectionString = SqlConnection1.ConnectionString


Connection.Open()



'exécution d'une requête select



Dim Adapter
As
New SqlDataAdapter



Dim SqlCmd
As
String = "SELECT * FROM pieces"



'on associe cette requête à la propriété SelectCommand du MySqlDataAdapter


Adapter.SelectCommand =
New SqlCommand(SqlCmd, Connection)



'remplissage du dataset



Dim ds
As
New DataSet


Adapter.Fill(ds)


DataGrid1.DataSource = ds.Tables(0)


DataGrid1.Refresh()



'on ferme la connexion


Connection.Close()

Quand je lance le prog, il me renvoie une exception "erreur système" et pointe l'erreur sur Connection.Open()
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
24 juin 2005 à 14:11
Tu ne penses pas avoir oublié le mot de passe SA dans ta chaine de connexion de ton programme ?
Dans la commande d'installation :
setup SAPWD="monMotDePasse"

monMotDePasse < ca correspond au mot de passe du compte SA.

Romelard Fabrice (Alias F___)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
24 juin 2005 à 14:20
j'ai changé un peu mon code en fait, et maintenant ça fonctionne, mais seulement en local. Si je lance mon application depuis une autre machine du réseau, ça ne marche pas.

[code]



'chaine de connexion



Dim connString = "server=JEREMY\moninstance;user id='sa';pwd='motdepassesapwd';database=pieces_usure;Persist Security Info=False"



'déclaration connexion mysql



Dim Connection
As
New SqlConnection(connString)


Connection.Open()



Dim sql_command
As
New SqlCommand


sql_command.Connection = Connection


sql_command.CommandText = "SELECT * FROM pieces"



Dim da
As SqlDataAdapter =
New SqlDataAdapter(sql_command.CommandText, Connection)



Dim ds
As DataSet =
New DataSet


da.Fill(ds, "pieces")


Dg.DataSource = ds


Dg.DataMember = "pieces"


Dg.Refresh()


affichage_données()


Connection.Close()



Depuis, j'ai réinstallé une autre instance (sans mettre le paramètre DISABLENETWORKPROTOCOLS à 0). Dans Client Network Utility, j'ai rendu enabled tous les protocoles réseau disponibles, mais malgré ça, ca passe pas.
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
24 juin 2005 à 14:24
Ben la à froid je n'ai pas d'idée particulière la dessus.

Romelard Fabrice (Alias F___)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
24 juin 2005 à 14:28
comment ça se fait que mon serveur ne soit accessible à aucun pc du réseau?
Comment font tous les autres? Je ne comprends pas comment ça se fait.

Encore une chose, j'ai installé sql web data administrator afin de gérer mes bases de données de ma msde. Mais quand je me logue (toujours en mode sql), le sablier de la souris apparait, mais rien ne s'affiche à l'écran (je reste sur la page de login) et IE (firefox pareil) ne m'affiche aucune barre de téléchargement de page.
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
24 juin 2005 à 15:32
Par hasard tu n'aurais pas un firewall sur ton poste ou le SP2 de Windows XP avec le FW intégré et actif (cas par défaut).

Romelard Fabrice (Alias F___)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
24 juin 2005 à 15:35
si mais j'ai déjà essayé en désactivant entièrement le firewall, et ça ne change rien
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 juin 2005 à 19:46
Salut,

La pile TCP/ip de ton MDSE est-elle configurée pour que ton soit vu sur le réseau.



Pour le vérifier je ne sais pas comement, mais au boulot j'ai eu ce pb
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
25 juin 2005 à 08:56
ben, j'ai cherché pas mal sur le web, mais rien de spécial. Tout ce qui est expliqué, je l'ai déjà fait.
J'ai désactivé mon firewall pour être certain que ça passe, j'y comprends rien du tout.
Je trouve ça bizarre que personne ne se le demande étant donné que beaucoup de gens utilisent sql server ou msde sur un réseau d'entreprise. Et pourquoi chez tous ces gens ça fonctionne, et pas ici?
0
Rejoignez-nous