![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę produktów powiązanych z dwoma kolumnami:
phpMyAdmin twierdzi, że trzeba stworzyć index. Tylko zastanawiam się, czy jest sens ustawiania indeksu na kolumnę pierwszą w ogóle, skoro jest ona typu INT no i jest ona tylko jedna, po drugiej nie będę wybierał danych ani sortował ich więc praktycznie nie ma sensu na nią zakładać indexu. Mógłby ktos wypowiedzieć się na ten temat? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Prawdopodobnie chodzi mu o to, że tabela nie ma zdefiniowanego klucza podstawowego
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Poprawne zapytanie:
Tworzenie indexu ma sens ponieważ nakład to też UNIQUE na kolumne co uniemożliwi posiadania takich samych id przez produkty. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
@Hesto w przypadku produktów powiązanych raczej klucz UNIQUE się nie sprawdzi bo może się zdarzyć, że jeden produkt `product_id` będzie miał powiązanych ze sobą 5 innych produktów `related_product_id` więc będzie pięć rekordów:
Kod product_id | related_product_id
------------------------------------ 1 | 2 1 | 3 1 | 4 1 | 5 1 | 6 Ten post edytował adbacz 15.11.2013, 11:14:32 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Powinieneś mieć:
1. Klucz podstawowy obejmujący obie kolumny. 2. Dwa klucze obce (product_id -> product.id, related_product_id -> product.id) z dodatkowym warunkiem usunięcia rekordu, w przypadku usunięcia produktu (on delete cascade). Ten post edytował Crozin 15.11.2013, 12:04:56 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedzi, szczególnie @Crozin-owi.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 00:11 |