Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: klucz obcy dla laczonego primary_key
Forum PHP.pl > Forum > Bazy danych > MySQL
Kinool
powiedzmy ze kluczem glowym w tabeli jest polaczenie 2 pol (pid i sid) pid to autoincrement, sid to powiazanie z inna tabela ... i teraz pytanie czy jest mozliwe zrobienie z tego klucza obcego w InnoDB dla wartosci sid

probowalem tego dokonac ale bez powodzenia sad.gif jelsi pid bedzie primary_key a sid index to da sie zrobic ale jesli oba pola sa uwazane za primary_key wtedy problemy sie pojawiaja
nospor
To co próbujesz zrobić nie trzyma się kupy. Skoro pid to autoincrement, czyli dla każdego rekordy będzie inne i tylko to wystarczy jako primary key
Sh4dow
nie no jest to wykonalne tylko troche pozbawione sensu. Po pierwsze tablica z tylko dwoma kolumnami z czego jedna to autoincrement to tak jak by zrobic jedna kolumna i wstawiac tam kolejno rozne ID. Jesli chcesz zrobic dwie kolumny i kazda jest kluczem obcym, bez wzgledy czy w swojej tablicy sa jako autoincrement czy nie ma sent. Robisz w tedy takie pseudo linkowanie dwoch tablic. i jest mozliwe zrobienie tego dla dwuch primarykey. Innymi slowy albo sproboj sie poprawnie wypowiedziec, albo zastanopw sie po co ci to. Rkingsmiley.png
Kinool
uppss zakrecilem sie troche tongue.gif autoincrement jest pid i sid (w innych tabelach) ta tabela to polaczenie (relacja wiele do wielu) czyli dane w tej tabli wiaza ze soba 2 inne tabele

reszta pozostaje bez zmian smile.gif
nospor
To powinno dzialac. Az zrobil test.
Stworzylem 2 tabele. Jedna ma pid, druga sid. Obba autoincrement.
Stworyzlem tabele laczacoą te dwie. ma ona dwa pola ID1, ID2. Oba pola są kluczem głownym tabeli. No i teraz bez problemu definiuje relacje. Oczywiscie wszystkie tabele muszą byc innodb
Kinool
no tak robilem i jak chial m zrobic cascade delete (jak z glownej usune wiersz to zeby automatycznie kasowalo go z tabeli powiazan) to mi krzaczy sad.gif ze pole sid lub pid (w tezli relacji) nie jest indexem sad.gif albo jakas starsza wersjie phpMyadmina mam albo cos nie tak robie sad.gif
nospor
To zrob jeszcze index z tego pola jak nie ma. Ja uzywam programu, który jak widzi ze nie ma indexu to go sam zaklada. widac phpmyadmin tak genialny nie jest.
Kinool
no rozwiazanie to jest ale myslalem ze moze jakos bardziej elegancko da sie to zaltwic smile.gif no ale nadmiarowosc informacji to rzecz czesta w db :|
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.