banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 28 Mar 2024, 22:41

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 21 Posta ]  Idi na stranicu 1, 2  Sledeća
Autoru Poruka
 Tema posta: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 10:29 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Da cujem misljenja ili prijedloge.

Firmw XY ima maloprodaju,i u tu svrhu koristi softver koji u pozadini ima bazu na SQL serveru,koja izmedju ostalog prati i stock level svakog artikla.
Dalje,firma zeli da ima i e-commerce site,koji moze da koristi iskljucivo mysql bazu. Ukoliko bi baza od e-commerce sajta imala i field interne sifre,identicno kao i u bazi od maloprodaje, da li bi moglo da funkcionise da ove dve baze putem nekih trigera i stored procedura obavjestavaju jedna drugu kad se stock level (broj),datog artikla te i te sifre promjeni,sto kroz maloprodaju,sto kroz e-commerce? Pada li na pamet nekome neko drugo rjesenje?

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 10:47 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 20 Jul 2009, 10:16
Postovi: 12660
Lokacija: Treći kamen od Sunca
Sto ne bi moglo, napravis linked server u sql management studiu i radis sta hoces kroz funkciju openquery('linked server', 'query').

Evo ti ovdje detaljnije opisano
https://www.packtpub.com/books/content/ ... erver-2008


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 10:50 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Nemam pristupa SQL serveru, zato i pitam,a nemam ni iskustva sa istim,nisam bas database guy:)

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 11:04 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 20 Jul 2009, 10:16
Postovi: 12660
Lokacija: Treći kamen od Sunca
Onda se sprijatelji sa njihovim DBA-om :D


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 13:23 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 18 Jul 2009, 18:07
Postovi: 6745
Lokacija: ( ͡° ͜ʖ ͡°)
Joomla 3 moze preko php drivera da komunicira sa SQL serverom i na nju mozes staviti ecommerce modul, problem je sto je bagovito sve pa moras svaki modul i polje u bazi modifikovati da bi to radilo. Imas isto nopCommerce koji native ima podrsku za SQL, ali je ASP. Nedavno sam radio nesto slicno kao sto si opisao, naisao na toliko problema izmedju tih tehnologija, da sam na kraju odustao zbog moguceg ulozenog vremena, a malo para :)

Firma je isto imala neki svoj menagment softwer, koji vrsi unos proizvoda, medjutim sve je bilo zbrljano pa si mogao uzeti kupiti procesor od 17 incha, tako da su bile velike prerade kako u PHPu, tako i u njihovim bazama.


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 13:44 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Baza za maloprodaju je ok,bazu za e-commerce ja radim,tako da mislim da bi sinhronizacijom ova dva unique fielda interne sifre proizvoda,koji vec postoje u prvoj bazi,to trebalo da radi.

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 15:34 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 18 Jul 2009, 18:07
Postovi: 6745
Lokacija: ( ͡° ͜ʖ ͡°)
Mozes li napraviti da ecommerce koristi ista polja u bazi kao i taj program od firme? Onda bi se uneseni proizvodi reflektovali na stranicu automatski. Kod ovih sto sam vidio stara njihova solucija je bila da php vadi direktno iz baze preko PDO drivera proizvode, kesira ih u .htm i te htm cache fajlove vuce na server i prikazuje ih u joomli.


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 18:05 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Samo cu dodati field interne sifre proizvoda,trebalo bi da bude dovoljno

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 18:14 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 20 Jul 2009, 10:16
Postovi: 12660
Lokacija: Treći kamen od Sunca
Kako ces sinhronizovati baze?


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 18:37 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 18 Jul 2009, 18:07
Postovi: 6745
Lokacija: ( ͡° ͜ʖ ͡°)
Pa samo ce dodati u istu bazu polja i na nju nakaciti ecommerce i vec postojeci software od prodavnice?


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 20:21 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Vid sad giometra sto me zajebaje.Ja pitam jel se moze onako izvesti sinhronizacija,kroz neke trigere,kad god se u jednoj od bazi field stock level dekrementuje,da se to odmah sinhonizuje sa drugom bazom,on kaze da to moze,i sad me pita kako cu to uraditi?:))

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 20:53 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 20 Jul 2009, 10:16
Postovi: 12660
Lokacija: Treći kamen od Sunca
Reko ako nemas pristup SQL Serveru, da povezes te dvije baze, kako ces trigerom gadjati onu drugu bazu?


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 16 Nov 2014, 21:11 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
To ce uraditi firma koja ima pristup,mene je zanimalo moze li to tako ili ne.Ja cu manje vise isto to uraditi sa strane e-commerce baze.

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 05 Dec 2014, 10:15 
OffLine
Majstor
Majstor
Korisnikov avatar

Pridružio se: 11 Nov 2006, 23:50
Postovi: 1073
Lokacija: Last Train Home
Možda je malo kasno za odgovor, ali evo ti neke ideje:
Trigeri nisu najsrećnije rješenje za ovakav tip sinhronizacije baza... Prije ili kasnije imaćeš probleme zbog recimo pucanja veze između 2 database servera, pa triger neće odraditi upis u bazu u firmi. Ili ćeš imati situaciju da istovremeno neko preko web shopa i direktno iz firme mijenju stanje zaliha nekog artikla, pitanje je ko tada ima "prvenstvo"?

Postoje 2 načina da se ovo odradi kako bi izbjegao glavobolje i probleme u sinhronizaciji baza:
1. Replikacija ili neka slična tehnika sihronizacije baza
2. Svi podaci ti budu u jednoj bazi, znači da se i iz firme i sa web shopa kačiš na 1 bazu

Druga varijanta je svakako puno jeftinija, ali zahtijeva da riješiš konekciju sa web shopa prema SQL server bazi (recimo, koristi ODBC).


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 05 Dec 2014, 10:56 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Druga varijanta je malo sporna,malo vise sporna,zbog razlicitog dizajna bazi,tj samih polja.Ici cemo preko web servisa,obe baze se nalaze pod istim domenom sto se tice ip opsega.

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 05 Dec 2014, 14:17 
OffLine
Majstor
Majstor
Korisnikov avatar

Pridružio se: 11 Nov 2006, 23:50
Postovi: 1073
Lokacija: Last Train Home
MuskoBre je napisao:
Druga varijanta je malo sporna,malo vise sporna,zbog razlicitog dizajna bazi,tj samih polja.Ici cemo preko web servisa,obe baze se nalaze pod istim domenom sto se tice ip opsega.


Druga varijanta ne mora uopšte biti sporna: Držiš sve u istoj bazi, ako ti je problem dizajn i struktura tabela onda napravi "duple" tabele... Web sajt upisuje u svoje tabele, aplikacija iz firme upisuje svoje tabele... Interna SQL server replikacija (unutar iste baze!) ili neki ETL job ti mogu syncati te tabele međusobno, po potrebi i transformisati podatke...

Lokacija DB servera u mreži uopšte nije bitna za ovu priču, tj. to da li su u istom domenu, u istom IP opsegu... Sve se to da podesiti, bitniji ti je način na koji se syncaju podaci između baza ako već koristiš 2 baze...


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 05 Dec 2014, 15:35 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 16 Jul 2004, 12:09
Postovi: 10379
Za drugu varijantu bih se morao baciti na php rewrite,za koji nemam vremenskih resursa.Za sad idemo sa sync izmedju 2 baze, samo 2 fielda,interna sifra,i stock level,moguce da cemo morati i ubaciti dodatni layer u vidu nekog servisa,mada bih ja vise volio da ide samo baza ka bazi.Btw,radi se o 2000+ proizvoda.

_________________
Viva Elena, Viva Nicolae!


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 10 Jul 2017, 14:27 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 07 Jul 2009, 13:22
Postovi: 5018
Lokacija: Banja Luka
Koristim MySql bazu i pokusavam primjeniti FIFO metodu na tabele. U tabelama imam datetime kolonu u kojoj se upisuje vremenski zig uz svaki podatak.
Ideja je da napravim before insert ili after insert triger, koji bi provjeravao broj redova i ako je red visi od limita, on bi brisao red sa najstarijim vremenskim zigom.

Tabela i triger na kom testiram ideju:

Kod:
CREATE TABLE `probnafifo` (
  `idprobnaFIFO` int(11) NOT NULL AUTO_INCREMENT,
  `tekst` varchar(45) DEFAULT NULL,
  `Vrijeme` datetime DEFAULT NULL,
  PRIMARY KEY (`idprobnaFIFO`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8


Kod:
CREATE DEFINER=`usysa`@`%` TRIGGER insertFIFO after insert
ON usys.probnafifo
FOR EACH ROW
BEGIN
DECLARE rowcount, indeks int default 0;
SELECT COUNT(*) INTO rowcount FROM usys.probnafifo;
select idprobnaFIFO into @indeks from usys.probnafifo order by Vrijeme limit 1;
   IF rowcount > 10 THEN
delete from usys.probnafifo where idprobnafifo = indeks;
end if;
END


Problem je sto mi izbacuje sledecu gresku:
Citiraj:
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1442: 1442: Can't update table 'probnafifo' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


Izgleda kao da insert zakljuca tabelu i ne dozvoljava brisanje reda. Postoji li nacin da se ovo nekako prejebe?

_________________
Eins, zwei, eins, zwei build an empire, very Prussian!
Exhaust gasses go into the turbocharger and spin it, witchcraft happens, and you go faster.


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 10 Jul 2017, 14:59 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 20 Jul 2009, 10:16
Postovi: 12660
Lokacija: Treći kamen od Sunca
evo jedno objasnjenje sa stack-a za slican problem

Citiraj:
The symptom is, that you are running an UPDATE (for all rows) inside a INSERT trigger - both modify the table, which is not allowed.


probaj before insert


Vrh
 Profil  
 
 Tema posta: Re: SQL server+ Mysql
PostPoslato: 11 Jul 2017, 10:29 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 07 Jul 2009, 13:22
Postovi: 5018
Lokacija: Banja Luka
Isto i za before.
Prebacicu taj posao na servis koji popunjava bazu...

_________________
Eins, zwei, eins, zwei build an empire, very Prussian!
Exhaust gasses go into the turbocharger and spin it, witchcraft happens, and you go faster.


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 21 Posta ]  Idi na stranicu 1, 2  Sledeća

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 3 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs