Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3789[/thread]

primary key



<< >> 7 Einträge, 1 Seite
Froschpopo
 2007-03-03 00:27
#35277 #35277
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hallo! :-)

hier meine Frage:

Code: (dl )
1
2
3
4
sender mediumint(8) unsigned default NULL,
datum timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
empfaenger mediumint(8) unsigned default NULL,
UNIQUE KEY msg (sender, empfaenger)


wie setze ich in dieser Kombi einen Primary Key ein?
Es gibt keine Spalte in der ein Wert eindeutig ist.
ABER: die Kombination sender-empfaenger soll eindeutig sind, weshalb ich auch den UNIQUE KEY gesetzt habe.
Nun die Frage: braucht man dann überhaupt noch einen Primary Key oder muss ich diesen dann auf "msg" legen?

EDIT: Datenbank ist mySQL\n\n

<!--EDIT|Froschpopo|1172874561-->
Thorium
 2007-03-03 01:01
#35278 #35278
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Erstell ein neues Attribut - z.B. msg_id mit AUTO_INCREMENT oder wie das auch immer in mySQL heisst ;). Primary Keys *immer* ein unsigned int als einzelnes Attribut. Gibt etwa tausend Gründe hierfür, zwei sind: Einfache Identifikation eines Tupels, Sinnvoller Einsatz von INDEXes...\n\n

<!--EDIT|Thorium|1172876618-->
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
Froschpopo
 2007-03-03 10:26
#35279 #35279
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
wozu sollte ich ein msg_id benötigen?
der eindeutige key ist die Kombination von zwei Spalten!
Und ob das schneller ist wage ich mal zu bezweifeln wenn man vorher erstmal den "tupel" herausfinden muss.
Außerdem macht es doch eigentlich keinen unterschied ob ich jetzt UNIQUE KEY oder PRIMARY KEY habe, denn beides ist einmalig.
Aber mich würde mal interessieren ob UNIQUE KEY binär ist?
Wenn ja, dann ist es doch schon dasselbe wie der PRIMARY KEY !

ich brauche also nicht noch eine Spalte, denn die dortigen Werte würde ich nicht abfragen weil ich keinen Bock habe erstmal die ID zu ermitteln das ist aus meiner sicht extrem unprofessionell !

ich dachte da eher an irgendwie sowas:
Code: (dl )
1
2
UNIQUE KEY msg (sender, empfaenger)
PRIMARY KEY msg
\n\n

<!--EDIT|Froschpopo|1172918096-->
MartinR
 2007-03-03 17:18
#35280 #35280
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hi,

ich hab's gerade mal mit phpmyadmin versucht.

Code: (dl )
ALTER TABLE `tabelle` ADD PRIMARY KEY ( `sender` , `empfaenger` ) 
.mike.
 2007-03-03 17:39
#35281 #35281
User since
2006-04-07
26 Artikel
BenutzerIn
[default_avatar]
[quote=Froschpopo,03.03.2007, 09:26]ich brauche also nicht noch eine Spalte, denn die dortigen Werte würde ich nicht abfragen weil ich keinen Bock habe erstmal die ID zu ermitteln das ist aus meiner sicht extrem unprofessionell ![/quote]
wieso denn id ermitteln?
die id hat man am anfang und dann werden darüber die werte ermittelt
fänd ich einfacher
Froschpopo
 2007-03-03 18:33
#35282 #35282
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
die id hat man NICHT von Anfang an.
wenn ich möglichst schnell alle ergebnisse von WHERE sender = $name1 AND empfaenger = $name2 haben will, bringt mir die auch nix. das ist nur datenmüll\n\n

<!--EDIT|Froschpopo|1172939656-->
Froschpopo
 2007-03-04 14:38
#35283 #35283
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
[quote=MartinR,03.03.2007, 16:18]Hi,

ich hab's gerade mal mit phpmyadmin versucht.

Code: (dl )
ALTER TABLE `tabelle` ADD PRIMARY KEY ( `sender` , `empfaenger` ) 
[/quote]
Ah super, das klappt ja schonmal ganz prima!
Bringt der PRIMARY KEY bei dieser Konstellation egentlich auch etwas, wenn man nur einen von den beiden werten (sender, empfaenger) abgreifen will?

also WHERE sender = 'sender'
wäre ja cool, wenn das auch klappen täte.
<< >> 7 Einträge, 1 Seite



View all threads created 2007-03-03 00:27.