Créer une relation 1-1 sur le modèle relationnel [Access] - SQL/NoSQL - Programmation
Marsh Posté le 20-03-2003 à 23:04:52
ca implique donc que tu peux n'utiliser qu'une seule table au lieu de deux..?? non?
Marsh Posté le 20-03-2003 à 23:10:41
Chrono a écrit : et ben c pas bien |
merci mais ça fais pas avancer le schmilblik
des relations des 1 à 1 ça existe notament quandles entités sont disociables, on mélange pas les torchons et les serviettes.
Marsh Posté le 20-03-2003 à 23:17:45
Je viens de voir ca sur Access, C vrai que C con pour toi..
Mais il est tout pas bien ce logiciel de toute façon...
En tout cas désolé mais je peux pas t'aider.
Marsh Posté le 21-03-2003 à 11:11:12
Chrono a écrit : Je viens de voir ca sur Access, C vrai que C con pour toi.. |
donc c'est pas possible avec access, je voulais en être sûr.
Je sais c'est nul access mais chui obligé de l'utilisé
Marsh Posté le 21-03-2003 à 13:04:05
Pouquoi t'arrives pas à créer une
relation 1-1 sous access
create table temp (x numeric);
CREATE UNIQUE INDEX pk
ON temp (x);
create table temp1 (x numeric);
CREATE UNIQUE INDEX pk
ON temp1 (x);
Voici 2 tables qui peuvent être liées par le
champ x et qui sont en 1-1, non ?
Et juste une reflexion : Access c pas
un logiciel de Merde, mais c pas
aussi un SGBD professionnel ...
Marsh Posté le 21-03-2003 à 14:52:09
vttman2 a écrit : Pouquoi t'arrives pas à créer une |
je crée mes tables en mode création sans passer par des requêtes. Ensuite avec le jeu des clés je crée mes relations
Marsh Posté le 21-03-2003 à 15:15:23
ok mod création!
et donc si tu as une clé primaire sur x dans
table temp et une clé primaire sur x dans table temp1
t'as bien une relation 1-1 entre les 2 tables, non ?
Ou ya un truc que j'ai pas pigé dans ce que tu veux
Marsh Posté le 21-03-2003 à 15:44:15
vttman2 a écrit : ok mod création! |
il parle de RELATION, pas de clé
Sinon, c'est simple, une relation 1-1 n'existe pas sur un SGBD, la seule qui soit modelable, c'est 0-1.
En effet, sinon, cela veut dire...
Mettons la table T1 avec la clé C1
La table T2 avec la clé C2 = C1
Donc, C2 est une clé étrangère qui pointe sur C1
Seulement, là c'est une relation 0-1
Si tu veux faire une relation 1-1, il faudrait en sorte que la clé C1 soit aussi une clé étrangère pointant sur la clé C2.
Seulement :
-> Déjà, ça fait un pointeur récusrif qui ne s'arrête jamais, donc tu ne pourras pas le faire
-> Si tu arrives à le faire, alors tu ne peux plus ajouter ni supprimer de ligne, puisque tu ne peux pas traîter deux lignes à la fois.
Une solution :
-> Créer 1 seule table, et dessus, faire deux vues correspondant à T1 et T2.
C'est le seul moyen de faire ça avec une relation 1-1 "proprement".
Sinon tu fait une relation 0-1, c'est très bien, les véritables relations 1-1 sont on ne peut plus rare.
Tu peux nous dire dans quel cas tu as ça ?
Marsh Posté le 21-03-2003 à 16:19:36
MagicBuzz a écrit : |
OK, OK MagicBuzz j'étais partie en Live ...
Ya des jours comme ça !!! sinon ça me parait pas
con ce que tu racontes
Marsh Posté le 21-03-2003 à 16:23:02
J'espère bien, me suis pas tapé 19 à mon projet d'analyse pour rien
Marsh Posté le 21-03-2003 à 18:57:21
MagicBuzz a écrit : |
ok tu me rassures c'est pas possible.
chaque site dispose d'un serveur unique j'ai une relation de 1 à 1 entre les 2 entités site et serveur
dans site j'ai toute les infos pour localiser ce site code, nom, adresse,.... et dans serveur toutes les infos code, nom, processeur, RAM,...
je peux pas faire une table unique en mélengeant serveur et site ce sont bien 2 entités parfaitement dissosciables.
T'en penses quoi
Marsh Posté le 22-03-2003 à 15:16:24
up
Marsh Posté le 24-03-2003 à 11:45:37
A priori, dans la réalité, c'est une relation n-n, il faut donc non seulement deux tables distinctes, mais en plus une table de relation.
En effet, un site peut héberger plusieurs sites (et ça va très vite, souvent les clients font un site, puis un sous-site qu'ils veulent greffer au site principal.
Ensuite, pour les très gros sites, on a souvent des cluters de serveurs, ou du load-balcing, et surtout des architectures 3/3 (serveur de BDD, serveur du site, serveur SLL par exemple)
Donc à 1 serveur peut, dans l'absolu, correspondre n sites, et à 1 site peut correspondre, toujours dans l'absolu, n serveurs.
Donc les tables sont :
SITE
----
SITE_ID
...
SERVER
------
SERVER_NUMSERIE
...
HEBERGEMENT
-----------
SITE_ID
SERVER_NUMSERIE
C'est ça le modèle qu'il faut utiliser, sinon tu risque d'avoir d'énormes soucis dans un future proche.
Marsh Posté le 26-03-2003 à 01:01:29
MagicBuzz a écrit : A priori, dans la réalité, c'est une relation n-n, il faut donc non seulement deux tables distinctes, mais en plus une table de relation. |
je me suis posé la question mais bon le cahier des charges est comme ça je sais c'est une aberration mais c'est pa smoi qui l'ai fixé
merci pour les explications
Marsh Posté le 20-03-2003 à 23:02:55
Je veux créer un modèle relationnel sous Access en ayant les 1-1 de chaque côté au lieu du 1 - infini j'ai tout essayé j'y arrive po
pourquoi 1 -1 par ce que ma relation entre 2 tables est de type 1 vers 1 dans les 2 sens
---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]