Postovani imam zadatak da napravim sistem nalik nekim portalima na kojima se prikazuju vesti.Tehnologije koje koristim su php i sql. Za sad sam uspeo da napravim admin panel,zasticen .htaccess fajlom i login formom i za njega koristim zasebnu tabelu u bazi.

Takodje je potrebno napraviti sistem za logovanje  i registraciju korisnika ,jer ce samo ulogovani i registrovani korisnici moci da vide komentare i da pisu iste.

Tabela s korisnicima izgleda ovako: 

user_id int(11) AI PK 
username varchar(45)
password varchar(255)
f_name varchar(45)
l_name varchar(45)
email varchar(255)
status char(1)

Takodje je potrebno prikazati vesti.

Tabela s vestima izgleda ovako.

 

id_vesti int(11) AI PK
naslov varchar(100)
uvod varchar(1200)
sadrzaj text
vreme_objave datetime
slika varchar(200)

 

Ja sam uspeo da napravim logiku za prikaz vesti,logovanje i registraciju.Ali ne znam kako da idem dalje s komentarima koji pretpostavljam trebaju biti na neki nacin povezani i s vestima i s odredjenim korisnikom koji postuje komentar.

Nisu mi najjasniji koncepti stranih kljuceva  joinovanje tabela i nemam predstavu kako da krenem dalje...

 

Pomoc dobrodosla.

Pozdrav.

Marko

novski
15.06.2016
Одељци: Зид Питања и одговори novski | Кључне речи:
0

Коментари:

Нови одговор Нови коментар

Одговори:

Приказано 1-1 од 1 ставке.

Структура базе:

create table korisnik(
  id int auto_increment primary key,
  username	varchar(45) unique not null,
  password	varchar(255) not null,
  f_name	varchar(45),
  l_name	varchar(45),
  email	varchar(255) unique not null,
  status	char(1) not null
)engine=InnoDb;

create table vest(
  id int auto_increment primary key,
  naslov	varchar(100) not null,
  uvod	varchar(1200),
  sadrzaj	text,
  vreme_objave	datetime not null,
  slika	varchar(200),
  -- Ja bih dodao vezu sa korisnikom, kako bi se znalo ko je objavio vest
  korisnik_id int not null,
  constraint fk_korisnik_id_vest
    foreign key(korisnik_id)
    references korisnik(id)
    on delete restrict
)engine=InnoDb;

create table komentar(
  id int auto_increment primary key,
  korisnik_id int not null,
  vest_id int not null,
  tekst text not null,
  vreme datetime not null,
  constraint fk_korisnik_id_komentar
    foreign key(korisnik_id)
    references korisnik(id)
    on delete restrict,
  constraint fk_vest_id_komentar
    foreign key(vest_id)
    references vest(id)
    on delete cascade
)engine=InnoDb;
 

Тест подаци:

insert into 
  korisnik(username, password, f_name, l_name, email, status) 
values
('pera', '13456', 'Pera', 'Peric', '[email protected]', 'A'),
('mika', '67891', 'Mika', 'Mikic', '[email protected]', 'B');

insert into 
  vest(uvod, naslov, sadrzaj, vreme_objave, korisnik_id)
 values
 ('Verovali ili ne...', 'Covek ujeo psa', 'Ustanem ja tako ujutru, a ono stomak me zavija...', '2015-12-12', 1);
 
 insert into 
   komentar(korisnik_id, vest_id, tekst, vreme)
 values
   (1,1,'Koji sam ja meni kralj!', '2015-12-12'),
   (2,1,'Bravo Pero, nadmasio si samog sebe!', '2015-12-13');
 

Упит:

-- Lista komentara za vest.id=1 uredjena po vremenu
select 
  korisnik.username, komentar.tekst, komentar.vreme 
from 
  komentar 
inner join korisnik on komentar.korisnik_id = korisnik.id
where 
  komentar.vest_id=1
order by
  komentar.vreme

За пример сам користио MySql пошто претпостављам да Вам то треба, међутим увек када могу да бирам ја користим PostgreSql.

На овој адреси можете експериментисати са базом: Фидл

Заинтересовани за часове програмирања могу ме контактирати путем мејла [email protected]

Ивица
17.06.2016
Одељци: Зид Питања и одговори Ивица | Кључне речи:
0

Коментари:

Нови коментар

©Библиотека++ 2024 Развој сајта Ивица Лазаревић