Aktywne Wpisy
Urynowyurynator +84
Kiedy 800+ zostanie w końcu zniesione? Ten program nie działa od samego początku, przepalamy miliardy na program, który nie funkcjonuje.
#demografia
#demografia

Pasterz30 +47
Nikt nie pytał ale Boze jak ja nie chce niec dzieci mimo 34 lat. Przyjezdzam raz na miesiac do domu do rodzicow gdzie nieszka jeszcze siostra ze szwagrem i dwojka dzieci 2 i 4 lata i to jest masakra. W nocy ciagle placzą, w dzien piski i placze od 7 rano bo oczywiscie „to przeciez dzieci”. Chodze niewyspany, ciagle z zatyczkami na uszach, wszedzie syf bo te dzieci robia b----l, masakra. Oby





https://pastebin.com/11dBhNE7
Generalnie chodzi o to, że jeden "pocket" może przechowywać wiele "itemów"
Przykładowa baza danych:
item:
1, 'A1', None
2, 'A2', None
3, 'A4', None
pocket:
1, 'N1'
2, 'N2'
Problem 1 jest taki, że jak zrobię:
c.execute(UPDATE item SET pocketid = :pid WHERE itemid = :aid",{"aid": 1, "pid":"elo"})
to bez problemu doda "elo' do pola pocket_id, które jest typy INTEGER
Problem 2 jest taki, że jak zrobię:
c.execute("SELECT * FROM item JOIN pocket")
return c.fetchall()
to dostanę:
(1, 'A1', 'elo', 1, 'N1')
(1, 'A1', 'elo', 2, 'N2')
(2, 'A2', None, 1, 'N1')
(2, 'A2', None, 2, 'N2')
(3, 'A4', None, 1, 'N1')
(3, 'A4', None, 2, 'N2')
zamiast zbioru pustego, bo przecież klucz FOREIGN KEY z tabeli item nie zgadza się z żadnym polem pocket
?
używam: #python #sql #sqlite
on item.pocket_id = pocket.idczy jakoś tak)SELECT * FROM item JOIN pocket on item.pocketid = pocket.pid
@scorpio18k:
Zastanawiam się jeszce po co w takim razie robić FOREIGN KEY skoro i tak trzeba wskazać po których kolumnach łączę?
Foreign Key pozwala zamodelować zależność wartosci danego pola od wartości z innej tabeli i zbudować powiązanie (a wiec moze rzucic błedem jesli docelowa tabela nie ma odpowiadającej wartosci).
W praktyce optymalizator bazy danych bedzie mogl tez skorzystac z FK przy budowie zapytan. Do tego jednak przydaje się jeszcze indeks na takiej kolumnie itd. itp.
Teraz mam zadanie dla Ciebie:
- pomyśl chwilę dlaczego Twoje założenie o tym, że automatycznie po FK system
dany lot ma swój numer, datę, lotnisko startu (
FromAirport) i lotnisko lądowaniaToAirport, np.LO26, 20220420, WAW, JFKi zarówno poleFromAirportjak iToAirportjest kluczem obcym wskazującym na tabelę przechowującą dane o lotniskach