# eine Tabelle hat mehrere PrimKey mit dem selben Wert



## ottens (4. Mrz 2010)

Hi an alle,

ich bin ziemlich neu mit MySQL und SQL hier habe ein Problem ich habe eine Tabelle erstellt 
die 3 PrimKeys hat ( ZeitId,StoffId,StationId ),die drei Spalten bekommen werte 1,2,3 u.s.w
aber manchmal kommt vor dass alle spalten in einer Zeile die selbe werte bekommen also
alle haben den Wert 1 , 1 , 1 oder 2 , 2, 2 u.s.w versuche mit for-Schleife die Tabelle mit 
Werten zu füllen aber bricht die Ausführung mit Fehlermeldung ab wegen Verletzung der Regel ???? 

hat jemand eine Lösung oder Idee wie ich die wiederholte Werte in der Tabelle zu zwingen ?

 werde dankbar .

  ZeitId    StoffId    StationId
     1           1           1
     1           1           2
     1           1           3
     1           2           1
     1           2           2
     1           2           3
     2           1           1

u.s.w    

Grüße

ottens


----------



## maki (4. Mrz 2010)

> hat jemand eine Lösung
> oder Idee wie ich die wiederholte Werte in der Tabelle zu zwingen werde dankbar .


Richtiges DB Schema inkl. korrekter Composite Keys könnte helfen 

Um welche DB geht es denn?


----------



## ottens (4. Mrz 2010)

Danke für die nette schnelle Antwort mensch ihr seid super

ich benutze MySQL 5.1 

aber was ist das Composite Keys ???

Gruß

Ottens


----------



## maki (4. Mrz 2010)

Composite Key = zusammengesetzter Schlüssel, genau das was du brauchst


----------



## ottens (4. Mrz 2010)

ich schau im internet wie macht man sowas 

danke für den Tip


----------



## ottens (4. Mrz 2010)

aber die drei PrimKey werden auch als Fremdschlüssel benutzt , da wo sie vereinbart sind ist eine 
 Kindtabelle, und zeigen jeweils auf Vatertabell --> StoffTabell,Zeittabelle und Stationtabelle .

Danke


----------



## Gast2 (5. Mrz 2010)

Ich versteh nicht ganz was du meinst. 

EINE Tabelle hat immer nur EINEN Primary Key. Wenn du jetzt eine zusammengesetzen Primary Key hast musst du natürlich auch in einer referenzierenden Tabelle den ganzen Key refernzieren nicht nur einen Teil davon. 

Ich denke eher dein Datenmodell ist nicht der Hit wenn sowas auftritt. Was möchtest du denn genau machen? Sprich welche Tabellen mit welchen Spalten hast du momentan?


----------



## ottens (5. Mrz 2010)

hi an alle und danke für die Hilfe 

 es gibt drei Tabellen (als Vater) also dimStoff, dimStation und dimZeit, die jeweils einen PrimKey hat.

 dimStoff hat Id-Spalte und stofSpalte z.B Co2,CL, PH_Wert u.s.w , dimStation hat IdSpalte und
 StationNr.Spalte die dimzeittabelle hat IdSpalte und jahrSpalte 1990,1991 u.s.w.
 also jede Station hat mehrere Messwerte, jeder Stoff hat pro jahr einen Messwert und jedes 
 Jahr hat mehrere Messwerte und die Kindtabelle heisst faktMessWert ,sie soll auf die drei Tabellen  
 zeigen also die abhängige Tabelle erhält den FremdSchlüssel, der auf Vatertabelle zeigen soll.

 auf die Kindtabelle soll zugriff mit java stattfinden und die Messwrte werden gelesen 
 je Station und Jahr und entsprechend die Stationen gefärbt werden je nach wert .

 hoffe habe klar und deutlich erklärt .

 ich kann kein Bild laden, sonst hätte ich ein Teil von ERDiagramm geschickt 

  Gruß 

 ottens


----------



## function (5. Mrz 2010)

```
CREATE TABLE faktMessWerte (
  idStoff INT(10),
  idStation INT(10),
  idZeit INT(10),
  PRIMARY KEY(idStoff, idStation, idZeit)
);
```
so setzt sich der Primary key aus den fremdschlüsseln zusammen, die kombination der fremdschlüssel sollte allerdings eindeutig sein..


----------



## ottens (7. Mrz 2010)

danke für die Hilfe werde versuchen 


Ottens


----------

