![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taki schemat bazy danych :
Moje pytanie brzmi : zakładając że w tabeli directory bede miał około 7 tysięcy wierszy w tabeli project_direcory będzie mega dużo powiazań zaużmy że pojawi sie tylko 100 projektów a liczba wpisów w tabeli project_direcory będzie wynosiła 7000*100 = 700 000. Jak to inaczej mozna rozwiazać (IMG:style_emoticons/default/questionmark.gif) myślałem żeby w tabeli direcory wprowadzić np. nowe pole tekstowe status_success gdzie bym wpisywał po przecinku czy innym znaku id projektów. Ale jak po takiej polu później coś wyszukać (IMG:style_emoticons/default/questionmark.gif) w celu zobrazowania jak wyobrażam sobie taką tabele direcory po modyfikacji :
i status_success wypełniał bym tak : 34,12,12,45,21, gdzie liczy po przecinkach to id projektów; Czy to dobry sposób na optymalizacje tej tabeli project_direcory (IMG:style_emoticons/default/questionmark.gif) jak wyszukiwać potem id w polu status_success (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) Z góry dzięki za odp. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zdecydowanie rozwiązanie 1, żadne łączenie statusów przecinkami! Zmień typ pola statusu ze znakowego na TINYINT, a nie powinno być żadnych problemów z wydajnością (a i miejsca nieco zaoszczędzisz).
Pozostaje jeszcze kwestia klucza głównego w tabeli project_direcory. Czy na pewno składa się on z tych 2 kolumn? Wg mnie nie, powinien składać się ze wszystkich 3 kolumn (włącznie ze statusem). Jednak w takiej sytuacji para 1 projekt i 1 katalog (?) mogą przyjąć tylko 1 raz dany status. Jeśli dopuszczasz możliwość wystąpienia duplikatów to nie obejdzie się bez standardowej kolumny id z AUTO_INCREMENT jako klucz główny. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 20:09 |