Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Normalizacija baze

[es] :: MySQL :: Normalizacija baze

Strane: 1 2 3

[ Pregleda: 5973 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze17.09.2011. u 18:19 - pre 153 meseci
Problem je stvarno bio u ovom sto ovaj idTip je trazen u bazi mydb. Mozda je najbolje da tu bazu ipak pobrisem. Sad mi preostje da proverism sve strane kljuceve da se ovo nebi opet desavalo. Inace ovo sad sljaka, mada meni i dalje nije jasno kako je Tip_idTip u primarnom kljucu al eto, ako nece praviti probleme i nije steta :)
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze21.09.2011. u 21:17 - pre 153 meseci
Uspeo sam jos da napravim deo oko logovanja korisnika kao i o privilegijama sta ko moze da vidi pa tako imam korisnicki i administratorski meni. To mi radi lepo. Napravio sam jos i deo za dodavanje kategorija proizvoda od stane administratora i evo tabele sa kategorijama:

Code:

--
-- Table structure for table `kategorija`
--

CREATE TABLE IF NOT EXISTS `kategorija` (
  `idKategorija` int(11) NOT NULL AUTO_INCREMENT,
  `naziv_kategorije` varchar(45) NOT NULL,
  PRIMARY KEY (`idKategorija`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;

--
-- Dumping data for table `kategorija`
--

INSERT INTO `kategorija` (`idKategorija`, `naziv_kategorije`) VALUES
(1, 'Procesor'),
(2, 'Mticna ploca'),
(3, 'Monitor'),
(4, 'Hard disk'),
(5, 'RAM'),
(6, 'Graficka karta'),
(7, 'Napajanje'),
(8, 'Tastatura'),
(9, 'Mis'),
(10, 'Opticki uredjaj');



Sad je prirodno da administrator doda i neke prozvode. Kako to da organizujem? Dakle imam tabelu proizvod a imam i kateogrija_proizvod koje su trenutno prazne:

Code:

--
-- Table structure for table `proizvod`
--

CREATE TABLE IF NOT EXISTS `proizvod` (
  `idProizvod` int(11) NOT NULL,
  `naziv_proizvoda` varchar(45) DEFAULT NULL,
  `stanje` int(3) NOT NULL,
  PRIMARY KEY (`idProizvod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `proizvod`
--


Code:

--
-- Table structure for table `kategorija_proizvod`
--

CREATE TABLE IF NOT EXISTS `kategorija_proizvod` (
  `Kategorija_idKategorija` int(11) NOT NULL,
  `Proizvod_idProizvod` int(11) NOT NULL,
  PRIMARY KEY (`Kategorija_idKategorija`,`Proizvod_idProizvod`),
  KEY `fk_Kategorija_has_Proizvod_Kategorija1` (`Kategorija_idKategorija`),
  KEY `fk_Kategorija_has_Proizvod_Proizvod1` (`Proizvod_idProizvod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `kategorija_proizvod`
--


--
-- Constraints for dumped tables
--

--
-- Constraints for table `kategorija_proizvod`
--
ALTER TABLE `kategorija_proizvod`
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Kategorija1` FOREIGN KEY (`Kategorija_idKategorija`) REFERENCES `kategorija` (`idKategorija`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Proizvod1` FOREIGN KEY (`Proizvod_idProizvod`) REFERENCES `proizvod` (`idProizvod`) ON DELETE NO ACTION ON UPDATE NO ACTION;



Mene zanima kojim redosledom sad da unosim podatke. Da li prvo da unostim proizvode ili sta? Nekako je logicno kada administrator unosi proizvode je da ima formu da unose ime proizvoda, da odabere u koju kategoriju da ga smesti i da upise stanje tj koliko tih proizvoda ima u magacinu. Nije mi jasno kako to da odradim sa ove 2 tabele istovremeno?!?

 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Normalizacija baze21.09.2011. u 22:20 - pre 153 meseci
U tvom konkretnom primeru imaš jedan "šifarnik" koji se zove KATEGORIJA. Znači listu tih kategorija bi trebalo administrator da ubaci ili eventualno prilikom inicijalizacije baze da ostaviš neke vrednosti (ono što si već uradio). Naravno trebalo bi pored padajuće liste gde biraš kategoriju da postoji i dugme Dodaj, koje bi otvaralo novu formu gde bi mogao da uneseš novu kategoriju ako ne postoji u padajućoj listi. Na primer prvi put unosiš proizvod Samsung Galaksi Tab i trebalo bi da ga smestiš u kategoriju Tableti, ali je nemaš u padajućoj listi. Znači trebalo bi da klikneš na dugme Dodaj, uneseš novu kategoriju Tableti, program osveži padajuću listu i ti odatle izabereš kategoriju Tableti. Ali ovo o čemu pričamo je aplikativna logika nije pitanje vezano za baze podataka.
Znači da rezimiramo, prvo ide unos šifarnika pa posle unos ostalih tabela. Kako ćeš ti to u aplikaciji da izvedeš to je već drugo pitanje. Ono što je sa stanovišta baze podataka bitno to je da moraš da izvršiš unos u dva koraka tj. u dve insert naredbe.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze21.09.2011. u 22:36 - pre 153 meseci
Aha, jasno je to za kataegorije. Sto se tice proizvoda, hoces da kazes, kupim postove od idProizvoda, nazivaProizvoda i stanje i insertujem u tabelu proizvodi , a odmah nakon toga insert idProizvoda i idKategorije u tabelu kategorija_proizvodi. Jesam dobro ukapirao, insertujem prakticno u 2 tabele istovremeno?
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Normalizacija baze21.09.2011. u 23:43 - pre 153 meseci
Da, samo možeš pre insertovanja da proveriš da li već postoji taj proizvod, npr:
Code:

if (postojiProizvod) {
  insert into proizvod_kategorija
else
  insert into proizvod
  insert into proizvod_kategorija


 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze22.09.2011. u 00:19 - pre 153 meseci
Hvala ! Pokusacu sutra pa cemo da vidimo mada nebi trebalo da bude problema.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze22.09.2011. u 23:15 - pre 153 meseci
Nisam stigao od obaveza danas da pousam da odradim ovaj insert. Nesto sam razmisljao kako da odradim ovo sa id-ovima ako mu se oni smestaju u bazu po auto_increment sistemu. Dakle ja kad unesim idProizvod u tabelu proizvod nigde ne govorim koji je to idProizvod nego pustim sistemu za upravljanje bazom da to sam odradi, e kako sad da taj isti idProizvod smestim i u tabelu kategorija_proizvodi. Ne znam da li me razumete? Jednostavno taj idProizvod ne pamtim nigde, ni u kakvoj promenljivoj.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze23.09.2011. u 21:38 - pre 153 meseci
biske imas mozda neku ideju kako ovo uraditi ili mozda savet kako se to inace radi? Mozda sad onaj auto_increment dolazi do izrazaja tj mozda id ne treba uopste da bude auto_increment?
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Normalizacija baze23.09.2011. u 23:05 - pre 153 meseci
Bio sam nešto zauzet pa ti nisam odgovorio.
Ne znam kako se to obično radi ali mogu da ti kažem kako bi ja to uradio, onako na prvu.
Znači najpre ubaciš red u tabeli PROIZVOD:
Code (sql):
INSERT INTO PROIZVOD (naziv_proizvoda, stanje) VALUES ('Samsung Galaksi Tab', 50);

Zatim dohvatiš idProizvod na sledeći način:
Code (sql):
SELECT idProizvod
FROM proizvod
WHERE naziv_proizvoda='Samsung Galaksi Tab';

Naravno umesto konkretnih vrednosti koje sam naveo (Samsung Galaksi Tab) ti koristi promenljive sa forme.
Onda možeš ovaj idProizvod da koristiš za unos u tabelu KATEGODIJA_PROIZVOD.
Napomena: Da bi ovo radilo moraš da staviš da ti je polje naziv_proizvoda NOT NULL. Isto tako nad tim poljem bi trebalo da staviš UNIQUE indeks da ti se ne bi dešavalo da dva puta uneseš vrednost Samsung Galaksi Tab. Ukoliko ne bi stavio indeks onda bi korisnik mogao dva puta da unese ovu vrendost i onda bi upit kojim uzimaš vraćao dve vrednosti. Nadam se da razumeš o čemu pričam, ako ne reci da postavim konkretan primer.

P.S. Mislim da nisi trebao da postavljaš temu u podforumu MySQL, već si trebao da pitaš ove stvari na podforumu Baze podataka, zato što tvoja pitanja nisu vezana konkretno za MySQL već uopšteno za baze podataka. To to kažem i iz razloga što ima dosta ljudi koji su vrhunski u bazama podataka a ne navraćaju na podforum MySQL. Tamo bi sigurno dobio mnogo bolje odgovore vezane za ovakve stvari.
Još jedna napomena je da se stvari mogu uraditi na nivou baze podataka ili na nivou aplikacije. Definitivno je prvi način bolji ali je to u slučaju da dobro vladaš bazama podataka, ako ne onda ideš pa rešavaš ovakve i slične probleme na aplikacionom nivou. Konkretno u tvom primeru, na formi bi trebale da postoje dve liste, jedna za nazive proizvoda a druga za nazive kategorija. I ako ne postoji taj proizvod u listi onda bi trebalo da postoji dugme "Dodaj" i da se njegovim pritiskom otvori nova forma gde uneseš proizvod i kada pritisneš na sačuvaj onda bi forma trebalo da se zatvori i da pored toga osveži listu sa proizvodima. Nakon toga ti izabereš proizvod iz liste, izabereš kategoriju i to je to.


To je moje mišljenje, ali opet kažem možda ima i drugih rešenja ne znam, možda neko drugi da se javi pa da prodiskutujemo.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze23.09.2011. u 23:34 - pre 153 meseci
Hvala na iscrpnom odgovoru. Malo sam googlao i neces verovati sta sam pronasao. Pogledaj ne moram da objasnjavam:


Code:
mysql_insert_id();  



Code:
$id = mysql_insert_id(); 


Poslednji insertovani id, zanimljivo :D
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Normalizacija baze23.09.2011. u 23:41 - pre 153 meseci
Odlično.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze28.09.2011. u 15:43 - pre 153 meseci
Kako je ovo moguce:

Pogledajte tabelu narudzba_proizvod:

Code:

-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Sep 28, 2011 at 04:35 PM
-- Server version: 5.1.33
-- PHP Version: 5.2.9-2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `prodavnica`
--

-- --------------------------------------------------------

--
-- Table structure for table `narudzba_proizvod`
--

CREATE TABLE IF NOT EXISTS `narudzba_proizvod` (
  `Narudzba_idNarudzba` int(11) NOT NULL,
  `Proizvod_idProizvod` int(11) NOT NULL,
  PRIMARY KEY (`Narudzba_idNarudzba`,`Proizvod_idProizvod`),
  KEY `fk_Narudzba_has_Proizvod_Narudzba1` (`Narudzba_idNarudzba`),
  KEY `fk_Narudzba_has_Proizvod_Proizvod1` (`Proizvod_idProizvod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `narudzba_proizvod`
--

INSERT INTO `narudzba_proizvod` (`Narudzba_idNarudzba`, `Proizvod_idProizvod`) VALUES
(1, 1),
(1, 2),
(1, 4),
(1, 7),
(1, 8),
(1, 9),
(1, 10),
(1, 11),
(1, 12),
(1, 13),
(2, 1),
(2, 2),
(2, 4),
(2, 7),
(2, 8),
(2, 9),
(2, 10),
(2, 11),
(2, 12),
(2, 13);

--
-- Constraints for dumped tables
--

--
-- Constraints for table `narudzba_proizvod`
--
ALTER TABLE `narudzba_proizvod`
  ADD CONSTRAINT `fk_Narudzba_has_Proizvod_Narudzba1` FOREIGN KEY (`Narudzba_idNarudzba`) REFERENCES `narudzba` (`idNarudzba`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `fk_Narudzba_has_Proizvod_Proizvod1` FOREIGN KEY (`Proizvod_idProizvod`) REFERENCES `proizvod` (`idProizvod`) ON DELETE NO ACTION ON UPDATE NO ACTION;

 


Iskren da budem nisam ni obratio paznju da mi je Workbench za Narudzba_idNarudzba i Proizvod_idProizvod stavio
da su primarni kljucevi i kako je to moguce ako je ta tabela nastala kao posledica veze vise: vise i oni treba da budu spoljni kljucevi. Medjutim oni su nekim cudom upisani pod PK ali kako sam onda uspeo da upisem ovoliko istih primarnih kljuceva???

Potpuno isti slucaj za tabelu konfiguracija_proizvod:
Code:

-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Sep 28, 2011 at 04:40 PM
-- Server version: 5.1.33
-- PHP Version: 5.2.9-2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `prodavnica`
--

-- --------------------------------------------------------

--
-- Table structure for table `konfiguracija_proizvod`
--

CREATE TABLE IF NOT EXISTS `konfiguracija_proizvod` (
  `Konfiguracija_idKonfiguracija` int(11) NOT NULL,
  `Proizvod_idProizvod` int(11) NOT NULL,
  PRIMARY KEY (`Konfiguracija_idKonfiguracija`,`Proizvod_idProizvod`),
  KEY `fk_Konfiguracija_has_Proizvod_Konfiguracija1` (`Konfiguracija_idKonfiguracija`),
  KEY `fk_Konfiguracija_has_Proizvod_Proizvod1` (`Proizvod_idProizvod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `konfiguracija_proizvod`
--


--
-- Constraints for dumped tables
--

--
-- Constraints for table `konfiguracija_proizvod`
--
ALTER TABLE `konfiguracija_proizvod`
  ADD CONSTRAINT `konfiguracija_proizvod_ibfk_1` FOREIGN KEY (`Konfiguracija_idKonfiguracija`) REFERENCES `konfiguracija` (`idKonfiguracija`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `konfiguracija_proizvod_ibfk_2` FOREIGN KEY (`Proizvod_idProizvod`) REFERENCES `proizvod` (`idProizvod`) ON DELETE NO ACTION ON UPDATE NO ACTION;


Naravno ovde dobijam gresku:
Duplicate entry PRIMARY KEY

Pokusao sam da izbrisem PRIMARY KEY (`Konfiguracija_idKonfiguracija`,`Proizvod_idProizvod`), ali nije uspelo.
Kako da prevazidjem ovo sa tabelom konfiguracija_proizvod???

 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Normalizacija baze28.09.2011. u 16:19 - pre 153 meseci
Kao prvo, Vorkbenč radi samo ono što mu kažeš. Nije on ništa stavio "sam". Ti si nacrtao tabelu i onda si ih povezao "indentifikujućom" vezom, koja je na dijagramu predstavljena kao neprekidna linija. Ako ostavimo teoriju po strani, identifikujuća veza znači da primarni ključ iz jedne tabele treba da se prenese kao primarni ključ u drugoj tabeli sa kojom se povezuje. Ako ne želiš ovu situaciju ti onda promeni vezu u neidentifikujuću: izabereš vezu između dve tabele pritisneš desni taster miša i iz padajućeg menija izabereš "Edit Relationship...". Na prozoru koji se pojavi izabereš karticu "Foreign Key", i odštikliraš "Identifying relation".
Pitaš zašto si uspeo da upišeš toliko istih primarnih ključeva. Pa ja ne vidim nigde dva ista primarna ključa. Ti ovde imaš kompozitni primarni ključ. Da bi za taj ključ imao iste vrednosti onda bi trebalo da imaš iste parove vrednosti, npr. da imaš sledeću situaciju
Code (sql):
INSERT INTO `narudzba_proizvod` (`Narudzba_idNarudzba`, `Proizvod_idProizvod`) VALUES
 (1, 1),
 (1, 1)
 

Ovo ne bi bilo dozvoljeno. Ali parovi (1, 1) i (1, 2) su različiti primarn ključevi.
Poenta kod primarnog ključa je da on jedistveno određuje jedan red u tabeli. I sada ako ti kažeš daj mi slog kod koga je primarni ključ (1, 1) baza tačno zna koji je to red. Ako bi imali više takvih redova onda baza ne bi znala koji red da nam vrati. Uglavnom pročitaj malo teoriju vezano za primarni ključ.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze28.09.2011. u 16:40 - pre 153 meseci
Hvala na detaljnom odgovoru. Pokusacu ovo da uradim u WB kako si rekao.


 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze28.09.2011. u 22:46 - pre 153 meseci
E hvala to je to. WorkBench je bas mocan alat i sto ti kazes nista ne radi slucajno. Ja sam na faxu koristio PowerDesigner i divio mu se al sve sto vise koristim WB sve mi se vise dopada.
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze31.10.2011. u 13:30 - pre 152 meseci
Evo nakon duze pauze dosla potreba da se ozivi tema:)

Interesuje me sledece:
Posto imam dosta zavisnih tabela po podacima interesuje me kako "odraditi" brisanje nekih podataka ciji spoljni kljucevi u drugim tabelama. Evo kod mog eksperimentalnog projekta, konkretno cu izdvojiti najjednostavniji problem, imam tabele:

proizvod
Code:

--
-- Table structure for table `proizvod`
--

CREATE TABLE IF NOT EXISTS `proizvod` (
  `idProizvod` int(11) NOT NULL AUTO_INCREMENT,
  `naziv_proizvoda` varchar(75) DEFAULT NULL,
  `proizvodjac` varchar(32) NOT NULL,
  `cijena` varchar(6) NOT NULL,
  `stanje` int(3) NOT NULL,
  `idProizvodjac` int(2) NOT NULL,
  PRIMARY KEY (`idProizvod`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=29 ;

--
-- Dumping data for table `proizvod`
--



kategorija
Code:

--
-- Table structure for table `kategorija`
--

CREATE TABLE IF NOT EXISTS `kategorija` (
  `idKategorija` int(11) NOT NULL AUTO_INCREMENT,
  `naziv_kategorije` varchar(45) NOT NULL,
  `konfiguracija` varchar(2) NOT NULL,
  PRIMARY KEY (`idKategorija`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;

--
-- Dumping data for table `kategorija`
--


kategorija_proizvod
Code:

-- Table structure for table `kategorija_proizvod`

CREATE TABLE IF NOT EXISTS `kategorija_proizvod` (
  `Kategorija_idKategorija` int(11) NOT NULL,
  `Proizvod_idProizvod` int(11) NOT NULL,
  PRIMARY KEY (`Kategorija_idKategorija`,`Proizvod_idProizvod`),
  KEY `fk_Kategorija_has_Proizvod_Kategorija1` (`Kategorija_idKategorija`),
  KEY `fk_Kategorija_has_Proizvod_Proizvod1` (`Proizvod_idProizvod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Dumping data for table `kategorija_proizvod`

-- Constraints for dumped tables

-- Constraints for table `kategorija_proizvod`

ALTER TABLE `kategorija_proizvod`
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Kategorija1` FOREIGN KEY (`Kategorija_idKategorija`) REFERENCES `kategorija` (`idKategorija`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Proizvod1` FOREIGN KEY (`Proizvod_idProizvod`) REFERENCES `proizvod` (`idProizvod`) ON DELETE NO ACTION ON UPDATE NO ACTION;


Zelim da obrisem neki proizvod iz tabele proizvod ali njegov kljuc imam u tabeli kategorija_proizvod. I jeste logicno da se prvo obrise podatak o tom proizvodu u tabeli kategorija_proizvod pa tek onda da se brise taj proizvod iz tabele prozvod. Mene zanima da li to moze da se uradi nekako automatski, npr da kazem obrisi mi taj proizvod ali tako da obrises i sve tragove o njemu u tabelama u kojima on participira. Nadam se da me razumete. Hvala


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.41.*

Sajt: mysql.rs


+2377 Profil

icon Re: Normalizacija baze31.10.2011. u 13:47 - pre 152 meseci
Citat:
13.3.5.4. FOREIGN KEY Constraints:
CASCADE: Delete or update the row from the parent table, and automatically delete or update the matching rows in the child table. Both ON DELETE CASCADE and ON UPDATE CASCADE are supported. Between two tables, do not define several ON UPDATE CASCADE clauses that act on the same column in the parent table or in the child table.

Note:
Currently, cascaded foreign key actions do not activate triggers.




 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze31.10.2011. u 14:25 - pre 152 meseci
Da li to znaci da moram da promenim strukturu tabela. NPR za kategorija_proizvod:

Code:

ALTER TABLE `kategorija_proizvod`
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Kategorija1` FOREIGN KEY (`Kategorija_idKategorija`) REFERENCES `kategorija` (`idKategorija`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_Kategorija_has_Proizvod_Proizvod1` FOREIGN KEY (`Proizvod_idProizvod`) REFERENCES `proizvod` (`idProizvod`) ON DELETE CASCADE ON UPDATE CASCADE;


E da jos i ovo da pitam. Kada odradim DELETE tog mog proizvoda, pod uslovom da je "ON DELETE CASCADE" "sve sto mi treba", automatski ce se obrisati i tragovi o njemu u ostalim tabelama?


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.41.*

Sajt: mysql.rs


+2377 Profil

icon Re: Normalizacija baze31.10.2011. u 14:33 - pre 152 meseci
da ako su strani kljucevi pravilno napravljeni .. obrati paznju na note za trigere
 
Odgovor na temu

corelko

Član broj: 165571
Poruke: 92
*.teol.net.



+6 Profil

icon Re: Normalizacija baze31.10.2011. u 14:42 - pre 152 meseci
Hvala. Ja nisam koristio trigere niti imam u planu za ovaj deo da ih koristim tako da sad za sad mene to ne pogadja.
 
Odgovor na temu

[es] :: MySQL :: Normalizacija baze

Strane: 1 2 3

[ Pregleda: 5973 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.