Application de base de données

Espace de discussions générales sur l'informatique. Tant au niveau matériel que logiciel.
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Application de base de données

Post by svernoux »

Hello,

J'ai hésité à répondre dans le sujet sur Open Office, mais finalement je fais ça à part.

Je voudrais créer une base de données et j'envisage d'utiliser Open Office. Je voulais juste vérifier avant de m'y mettre que ça allait bein me permettre de faire ce que je veux : je veux mettre des données sur des contacts avec plein de champs (nom, adresse, date, etc etc etc) et pouvoir ensuite faire des recherche par critères (ex : tous ceux dans tel département, tous ceux pour telle année). J'imagine qu'on peut créer autant de champs (parle-t-on de champs en BDD ?) qu'on le souhaite. Mais peut-on faire des recherches multicritères (du type : tous les contact de catégorie B, puis parmi eux tous ceux pour 2003 ?)
Autre chose qui m'intéresse : je vais mettre les adresses e-mail de tous ces contacts dans cette BDD. Est-il possible lorsque je veux faire un mailing à tout ou partie de ma BDD d'exporter tout ou partie des adresses d'un seul coup ? J'imagine que oui et j'imagine que ça dépend aussi des appli mais je préfère demander :lol:

Et d'une manière générale, pensez-vous que l'appli de BDD d'Open Office soit satisfaisante ? Je crois que j'ai aussi Access qqpart, mais comme je suis pas sûre de l'avoir toujours dans le futur, je préfèrerais un outil libre qu'on peut toujours retrouver et comme de toute façon je sais pas me servir d'Access non plus, je vais de tte façon partir de zéro :lol:

Merci d'avance !
:hello:
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
Geache
Membre / Member
Posts: 2149
Joined: 04 Jun 2003 13:18
Location: Mons

Post by Geache »

Alors, je ne connais pas la base de données de Open Office, mais par expérience, je sais que Open Office est, en général, plus puissant que la suite Office.

Par contre, je connais bien ACCESS. Et sur base de cette connaissance, en postulant que Open Office soit plus puissant, alors je répondrai que, oui, tout ce que tu veux faire est possible.

Toutefois, si je peux me permettre un bon conseil, avant de te lancer dans la réalisation de ta base de données, réfléchis bien à ce que tu veux mettre dedans. Une fois que tu auras réfléchis aux données que tu veux traiter, essaies de dégager les entités de tes données.

Un bête petit exemple pour illustrer.

Dans un agenda, tu peux mettre des noms, des prénoms, des numéros de téléphone.

On peut tout mettre dans une seule table d'une base de données, mais...

Une même personne peut avoir plusieurs numéros de téléphone. Et en imaginant qu'elle en ait 5, 6, ... tu risques d'avoir des surprises dans la gestion de ta table.

Mieux vaut alors scinder les données en deux tables (j'ai donc deux entités).

Une table contacts qui contiendrait une clé, le nom, et le prénom.

Une table numéro de téléphone contenant le numéro et la clé (correspondant à ton contact).

Tu crées ainsi une base de données relationnelle ou la relation entre ta table contacts et ta table numéro de téléphone est établie via ta clé.

Tu as donc la possibilité, à partir d'un nom, de retrouver le ou les numéros de téléphone associé(s) et inversément.

On parle de clé primaire quand la valeur de la clé dans une table est unique. Dans contacts donc, dans mon exemple.

Pour la table numéro de téléphone, on parlera de clé étrangère (elle peut prendre plusieurs fois la même valeur).

Prends vraiment le temps de faire cette démarche avant d'essayer de passer à la réalisation.
________________________________________
Les fleurs poussent même dans les cimetières
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Post by svernoux »

Merci Geache ! :god:
Geache wrote:Prends vraiment le temps de faire cette démarche avant d'essayer de passer à la réalisation.
Oui, tout à fait, je voudrais pas tout refaire après, c'est pr ça que je demande. Ceci dit, j'ai pas tout compris parce que je ne sais pas ce que c'est qu'un clé et qu'une entité :confused:
Je vais essayer de me documenter, si j'y arrive pas je reviendrai demander.

Ce qui m'inquiète, c'est d'oublier des éléments dans ma base de données au départ : on peut en rajouter à volonté a posteriori ou bien ça pose des problèmes ?
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
arkayn
Membre / Member
Posts: 12222
Joined: 09 Dec 2002 02:02
Location: Nogent-le-Rotrou
Contact:

Post by arkayn »

On peut rajouter des tables supplémentaires. Il faudra juste que tu fasses la mise à jour des liens à l'intérieur de la table de données.

Une clef, c'est ce qui permet de distinguer parmi les diverses informations que tu veux traiter celles qui correspondent à une personne, par exemple.

Dans le premier champ de ta BDD (base de données), tu peux mettre un numéro d'ordre : 01, 02, 03... ou une donnée ne correspondant qu'à une seule et même personne, comme un numéro de sécu. Ce sera ta clef.

Ainsi, si dans la table téléphone, tu introduis un numéro de fixe, un numéro de portable et un numéro de fax en leur donnant à chaque fois la clef 03, quand tu fais une recherche sur la clef 03, il te redonnera automatiquement ces 3 numéros de téléphone/fax et ignorera les autres numéro ayant d'autres clefs.

Ou pour donner un exemple plus concret :
Supposons que tout le monde mette une étiquette à son nom sur tous leurs vêtements.

Nous prenons tous les vêtements de 10 personnes et les brassons. Maintenant, on fait une recherche sur les pantalons dans ce tas pour les rendre à leurs propriétaire. Nous n'avons aucun mal à redonner les pantalons de Pierre, Paul ou Jacques grâce au nom qui est cousu dessus. C'est la clef !

Grâce à cette même clef, nous pouvons redonner aussi tous les vêtements d'une personne.

Dans la pratique, dans les BDD, les noms sont souvent des données et on utilise plutôt un numéro d'ordre comme clef.
La folie des uns est la sagesse des autres
Pixel
Guest

Post by Pixel »

Juste une question : as-tu un reel besoin de tout refaire toi-meme ?

Ca peut etre utile de regarder s'il n'existe pas deja des outils correspondant a ce que tu recherches, avant de te lancer sur un tel chantier - d'autant plus que tu n'as pas l'air d'avoir beaucoup manipule les bases de donnees...

Si tu veux, je me suis fait un programme perso sur Internet pour gerer mon carnet d'adresses et l'avoir toujours a portee de main (partout ou il y a Internet quoi :P). Il est multi-utilisateurs et marche sur la base d'un compte-utilisateur, et chacun peut definir ses groupes de contacts, et associer a chacun d'eux plusieurs adresses, plusieurs numeros de telephone, etc.

Il n'est pas encore ouvert au public (meme si je me sers de toute ma petite suite de programmes depuis bien longtemps :P), mais si tu veux, je peux te donner les structures des bases de donnees - que j'ai volontairement simplifiees. C'est du MyQSL par contre...

Voilou. Mais le point important, c'est d'etre sur que tu aies besoin d'un tel outil et que tu ne peux pas trouver le meme ailleurs ;)
User avatar
pc2
Membre / Member
Posts: 5299
Joined: 18 Feb 2005 13:21
Location: Rio de Janeiro, Brasil
Contact:

Post by pc2 »

saluts,

donc, la clef peut être vu comme un nombre unique d'identification pour chaques données.

svernoux, ouis, vous pouvons faire des recherches multicritères, et ça dépend des appli.
quand nous voulons faire des recherches multicritères en ASP avec ADO + Access, nous utilisons des opérateurs AND et OR, par exemple:

"tous les contact de catégorie B, puis parmi eux tous ceux pour 2003"
"SELECT Catègorie, Date FROM Table WHERE Catègorie='B' AND Date=2003"

généralement, quand nous voulons additionner pluisieurs numéros de téléphone dans une seule clef (les numéros de telephone 1111-1111 et 2222-2222), nous nous les avons mis dans la même colonne, séparés par un ";"; par exemple:

CLEF: 45.
TEL: 1111-1111;2222-2222.

depuis, l'interface (que peut être ASP, PHP, etc.) trouvera en CLEF "45" le valeur TEL "1111-1111;2222-2222", et peut les extrait avec un command simple de séparer strings par le caractère ";" (comme un loop, par exemple). pour extraire des téléphones, avec Access, nous utilisons un command de "LIKE #numero#", où "#" indique "tout texte".
svernoux wrote:Autre chose qui m'intéresse : je vais mettre les adresses e-mail de tous ces contacts dans cette BDD. Est-il possible lorsque je veux faire un mailing à tout ou partie de ma BDD d'exporter tout ou partie des adresses d'un seul coup ? J'imagine que oui et j'imagine que ça dépend aussi des appli mais je préfère demander.
désolé, nous ne comprenions pas exactement ce que vous demandez ici.

merci,
Merci de corriger notre français si nécessaire.
Paulo Marcos -- & -- Claudio Marcos
Brasil/Brazil/Brésil
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Post by svernoux »

Merci à tous pour vos réponses !
pc2 wrote:
svernoux wrote:Autre chose qui m'intéresse : je vais mettre les adresses e-mail de tous ces contacts dans cette BDD. Est-il possible lorsque je veux faire un mailing à tout ou partie de ma BDD d'exporter tout ou partie des adresses d'un seul coup ? J'imagine que oui et j'imagine que ça dépend aussi des appli mais je préfère demander.
désolé, nous ne comprenions pas exactement ce que vous demandez ici.
Eh bien, jusqu'à présent, j'ai une mailing-list sous forme de feuille Excel avec une colonne pour la ville, une colonne pour le nom et une colonne pour l'adresse e-mail. C'est bien gentil, mais quand je veux faire un mailing, eh bien en gros je suis obligée de copier les adresses e-mail une par une. Ou alors de copier la colonne entière dans un fichier Word par exemple, de sortir le texte du tableau et de remplacer les sauts de ligne par des virgules... Mais bref, ça demande un temps fou et puis je ne peux même pas dire que je le fais une fois pour toutes puisque parfois je peux vouloir faire un mailing à toute ma liste, parfois seulement aux Belges, parfois seulement aux Parisiens, etc. Donc, il me faut un truc pratique qui me permette d'exporter facilement toute une série d'adresses e-mail selon des critères sélectionnés.

C'est possible ?


@ Pixel : en fait, j'ai besoin de deux BDD différentes : celle que j'explique à l'instant, une simple mailing list, ça en effet y'a peut-être mieux que mon idée : as-tu des suggestions ? Par contre, j'ai besoin d'une autre BDD qui sera bien plus qu'un simple carnet d'adresses : je vais avoir dedans des dizaines de "critères" (ou tables, si j'ai bien compris la termino) qui, je pense (peut-être avec présomption ?), ne correspondent pas à une application suffisamment courante pour qu'il existe un modèle me convenant. a moins qu'on puisse trouver des programmes plus simples ET personnalisables à souhait ?
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
iubito
Membre / Member
Posts: 13070
Joined: 22 Dec 2002 20:31
Location: La belle Verte !
Contact:

Post by iubito »

Imaginons ton fichier excel

Nom | Prénom | Pays | Département | Ville | E-mail

Grâce aux filtres automatique (menu Données > Filtre > Filtre automatique) tu peux facilement afficher uniquement un département, ou un pays.
Si dans ta liste y'a Belgique, France, Italie, Russie comme pays, tu peux afficher tous, uniquement Belgique, uniquement Russie...

Le filtre automatique ajoute des petites flèches sur la première ligne qui ouvrent des listes de choix

Dans cette liste de choix, l'option personnaliser te permet de filtrer encore mieux (par exemple département <= 43)

Après application des filtres, tu copies ta colonne e-mail dans ton aplication d'envoi de mail.
J'ai essayé dans outlook et dans gmail, si je colle des adresses séparées par un retour à la ligne et non un point-virgule, ça fonctionne.
A+ les cactus !
A izza i ana sacranou
Askaratni kaasoun kaasoun khalidah
Ana mal' anou bihoubbinn raasikhinn
Lan yatroukani abada...
User avatar
arkayn
Membre / Member
Posts: 12222
Joined: 09 Dec 2002 02:02
Location: Nogent-le-Rotrou
Contact:

Post by arkayn »

Pour moi, vu ce que tu souhaites faire, il te faut une base de données, ce sera le plus pratique.

Par contre, quand on n'y connais rien, ce n'est pas évident à créer et encore moins à utiliser.

En attendant que tu y arrives, je te propose une solution avec Excel. Il existe une fonction nommée concaténer.

Pour faire de petits mailings list, cela devrait bien te dépanner.

Image

Tu sélectionnes la première cellule, tu mets une virgue, tu sélectionne la deuxième cellule...

Et plus qu'à copier le résultat. ;)

C'est sûr, c'est du dépannage, mais bon...
La folie des uns est la sagesse des autres
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Post by svernoux »

Ah, merci, je vais essayer ces deux solutions ! Pour concaténer, je sais pas parce qu'en fait j'ai pas tournée ma langues 7 fois dans ma bouche tout à l'heure : c'est pas une feuille Excel que j'ai mais une feuille OOO ! M'enfin, au pire je peux aussi la copier dans Excel, rien n'est insoluble !
arkayn wrote:Pour moi, vu ce que tu souhaites faire, il te faut une base de données, ce sera le plus pratique.

...

C'est sûr, c'est du dépannage, mais bon...
Tu veux dire que pour le mailing aussi la BDD serait une meilleure solution ? Parce que comme je disais, je pense que je vais devoir m'y mettre de toute façon pour ma deuxième application alors tant qu'à faire...
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
arkayn
Membre / Member
Posts: 12222
Joined: 09 Dec 2002 02:02
Location: Nogent-le-Rotrou
Contact:

Post by arkayn »

Autant faire d'une pierre deux coups. Qui peux le plus peux le moins et avec une BDD, tu n'as qu'à créer un filtre pour sélectionner les mails français, ou belges, etc et tu as tout le travail de fait.
La folie des uns est la sagesse des autres
User avatar
pc2
Membre / Member
Posts: 5299
Joined: 18 Feb 2005 13:21
Location: Rio de Janeiro, Brasil
Contact:

Post by pc2 »

saluts,

@svernoux: donc, vous voulez diviser les addresses e-mail par catégorie, et choisir la catégorie à laquelle vous voulez envoyer l'e-mail?
en ASP, nous utiliserions un composant tiers pour la fonction qu'envoie l'e-mail (MS Outlook a des composants COM pour VBScript), et le reste est juste code de base de données... comme arkayn a dit:
arkayn wrote:Autant faire d'une pierre deux coups. Qui peux le plus peux le moins et avec une BDD, tu n'as qu'à créer un filtre pour sélectionner les mails français, ou belges, etc et tu as tout le travail de fait.
Merci de corriger notre français si nécessaire.
Paulo Marcos -- & -- Claudio Marcos
Brasil/Brazil/Brésil
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Post by svernoux »

pc2 wrote:@svernoux: donc, vous voulez diviser les addresses e-mail par catégorie, et choisir la catégorie à laquelle vous voulez envoyer l'e-mail?
euh...oui. La choisir mais surtout exporter ces adresses pour pouvoir les utiliser dans ma messagerie !

Désolée, pais je ne connais pas l'ASP et je n'utilise pas MS Outlook :c-com-ca:
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
svernoux
Membre / Member
Posts: 17967
Joined: 09 Jun 2004 09:55
Location: Beaujolais

Post by svernoux »

Question subsidiaire : je sais que MySQL est utilisé (souvent) pour les bases de données des sites Web (couplé au PHP). Peut-on aussi se servir de ce logiciel pour créer une base de données toute bête (j'entends : pas appliquée à Internet) ?

Merci d'avance.
Sonka - Сонька
It's crazy how the time just seems to fly
But for a moment you and I, we caught it
User avatar
arkayn
Membre / Member
Posts: 12222
Joined: 09 Dec 2002 02:02
Location: Nogent-le-Rotrou
Contact:

Post by arkayn »

En théorie, c'est faisable. On peux assez facilement exporter une base de données MySQL.

http://www.commentcamarche.net/mysql/mysqlimport.php3

Dans la pratique, cela voudrait dire qu'il te faudrait développer toi-même des outils pour utiliser la Base de données créée avec MySQL (pour écrire les données puis pour les utiliser). Il te faudrait alors te mettre au langage php ou asp par exemple.

Je ne suis pas sûr que tu y trouves ton compte, tout au moins à court terme.
La folie des uns est la sagesse des autres
Post Reply