Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pomoc w zaprojektowaniu bazy danych i relacji miedzy tabelami.
17misiek09
post
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 8
Dołączył: 16.12.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


mam problem.
kiedys sie to robilo, a teraz sie zapomnialo....poprostu umiejetnosc nie wykorzystywana zanika.

przejdzmy do tematu:
baza danych skladac sie bedzie z 4 tabel:

categories
Kod
cat_id   int(11)
nazwa    varchar(20)


users
Kod
user_id            int(11)             AUTO_INCREMENT   PRIMARY KEY
user_name          varchar(20)
user_password      varchar(20)
user_email         text
user_www           text
user_confirmed     tinyint(1)



news
Kod
news_id            int(11)     AUTO_INCREMENT      PRIMARY KEY
news_date          date
news_cat           int(11)
news_user_name     varchar(20)
news_title         varchar(35)
news_link          varchar(35)
news_short         text
news_whole         text
news_view          int(11)



comments
Kod
comment_id                int(11)     AUTO_INCREMENT       PRIMARY KEY
comment_news_id           int(11)
comment_user_name         varchar(20)
comment_user_email        text
comment_user_www          text
comment_content           text



nooooo i tak:
1. w tabeli news kolumna "news_user_name" to kolumna "user_name" z tabeli users
2. w tabeli comments kolumna "comment_news_id" to kolumna "news_id" z tabeli news

3. w tabeli comments kolumna "comment_user_name" to kolumna "user_name" z tabeli users
4. w tabeli comments kolumna "comment_user_email" to kolumna "user_email" z tabeli users
5. w tabeli comments kolumna "comment_user_www" to kolumna "user_www" z tabeli users

chyba, ze te trzy ostatnie da sie jakos inaczej zrobic?
jak wogole utworzyc takie relacje??baaardzo wdzieczny za pomoc. kiedys wszystko bylo klarowne, teraz nie moge sie z tym pozbierac (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Po pierwsze, nie ma sensu przepisywać kilkakrotnie tych samych wartości. Nic z tabeli users nie powinno się powtórzyć w innych tabelach.

categories
Kod
cat_id   int(11)
nazwa    varchar(20)


users
Kod
user_id            int(11)             AUTO_INCREMENT   PRIMARY KEY
user_name          varchar(20)
user_password      varchar(20)
user_email         text
user_www           text
user_confirmed     tinyint(1)



news - wystarczy user_id, news_short - jeśli to obcjęta wersja whole, to nie ma racji bytu, takie obcinanie robisz przy wyświetlaniu.
Kod
news_id            int(11)     AUTO_INCREMENT      PRIMARY KEY
news_date          date
news_cat_id           int(11)
news_user_id     varchar(20)
news_title         varchar(35)
news_link          varchar(35)
news_whole         text
news_view          int(11)



comments - wszystko co przechwouje wartości z tabeli users - wypad, zostaje samo user_id, na tej podstawie pobierasz resztę danych.
Kod
comment_id                int(11)     AUTO_INCREMENT       PRIMARY KEY
comment_news_id           int(11)
comment_user_id         int(11)
comment_content           text
Go to the top of the page
+Quote Post
17misiek09
post
Post #3





Grupa: Zarejestrowani
Postów: 137
Pomógł: 8
Dołączył: 16.12.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


juz mi bardzo pomogles (IMG:style_emoticons/default/smile.gif)

teraz kolejna kwestia - jak na podstawie np user_id wyciagnac przy wyswietlaniu te dane uzytkownika, ktore chce...
chodzi chociazby o sytuacje z ostatniej tabeli, ktora opisales.


iii jak taka relacje stworzyc...pogubilem sie dokumentnie :/
pomyslec ze kilka latek temu trzaskalo sie to od reki...praca w calkiem innym zawodzie odciaga od lubianego zajecia (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
r4xz
post
Post #4





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


http://www.w3schools.com/sql/sql_join_left.asp
Go to the top of the page
+Quote Post
17misiek09
post
Post #5





Grupa: Zarejestrowani
Postów: 137
Pomógł: 8
Dołączył: 16.12.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


klaniam sie nisko! (IMG:style_emoticons/default/smile.gif)
ja kombinuje z relacjami, a tu wystarczylo LEFT JOIN (IMG:style_emoticons/default/smile.gif)
dziekuje!!! (IMG:style_emoticons/default/smile.gif) ojj wiele musze sobie przypomniec (IMG:style_emoticons/default/smile.gif)
obaj dostajecie po POMÓGŁ (IMG:style_emoticons/default/smile.gif)

nie moge wyczaic...
jak wyswietlic :

news_date, news_title, news_user_name, news_cat(nazwa kategorii), news_short, news_whole, user_email, user_www jednoczesnie?:/
nie moge zczaic tego...
prosze o pomoc.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM tabela AS tab1 LEFT JOIN AS tab2 ON tab2.id_news=tab1.id_news LEFT JOIN AS tab3 ON tab2.id_news=tab3.id_news


i tak dalej.
Go to the top of the page
+Quote Post
17misiek09
post
Post #7





Grupa: Zarejestrowani
Postów: 137
Pomógł: 8
Dołączył: 16.12.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(b4rt3kk @ 12.11.2012, 17:21:15 ) *
  1. SELECT * FROM tabela AS tab1 LEFT JOIN AS tab2 ON tab2.id_news=tab1.id_news LEFT JOIN AS tab3 ON tab2.id_news=tab3.id_news


i tak dalej.


albo tak stumanialem, albo naprawde nie rozumie o co chodzi... :/

edit:
udalo sie jednak coss wymodzic (IMG:style_emoticons/default/wink.gif) jest ok (IMG:style_emoticons/default/wink.gif) efekt ok, teraz tylko wyswietlic to na stronie...

Ten post edytował 17misiek09 12.11.2012, 22:54:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 19:16