🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
6 messages
6 total messages Started by rozrabiak Wed, 17 Oct 2012 06:53
C# i baza danych na serwerze - relacje.
#22438
Author: rozrabiak
Date: Wed, 17 Oct 2012 06:53
7 lines
1354 bytes
Witam serdecznie,
jeżeli łączycie program pisany w C# z serwerem bazodanowym (w moim przypadku będzie to mysql innodb) to gdzie realizujecie relacje? W programie czy po stronie serwera?

Które rozwiązanie będzie mniej kłopotliwe?

Pozdrawiam,
Grzegorz.
Re: C# i baza danych na serwerze - relacje.
#22439
Author: Łukasz 'Maly' Ostrowski
Date: Wed, 17 Oct 2012 08:09
16 lines
1571 bytes
On Tue, 16 Oct 2012 23:53:37 -0700 (PDT), rozrabiak wrote:
> jeżeli łączycie program pisany w C# z serwerem bazodanowym 
> (w moim przypadku będzie to mysql innodb) to gdzie 
> realizujecie relacje? W programie czy po stronie serwera?

Co to znaczy "realizować relacje"?

Moja Zen Kula podpowiada mi, że odpowiedź brzmi, po obu
stronach:
- po stronie bazy żeby trzymać "więzy spójności"
- po stronie aplikacji, bo duh, logika biznesowa tego
  wymaga ;D.

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Re: C# i baza danych na serwerze - relacje.
#22440
Author: rozrabiak
Date: Wed, 17 Oct 2012 09:01
10 lines
1680 bytes
W dniu środa, 17 października 2012 10:10:06 UTC+2 użytkownik Łukasz 'Maly' Ostrowski napisał:
> 
> Co to znaczy "realizować relacje"?
> 

Głupio napisałem:) Chodziło mi o pospinanie tabel tymi "kreskami" od relacji ;) Czyli potworzenie foreign key itp.

Zastanawiam się po prostu czy jest sens robić to po stronie serwera skoro w C# można to zrobić. Lub odwrotnie.

Serio robisz to po obu stronach?
Re: C# i baza danych na serwerze - relacje.
#22441
Author: Łukasz 'Maly' Ostrowski
Date: Wed, 17 Oct 2012 09:51
30 lines
2225 bytes
On Wed, 17 Oct 2012 02:01:47 -0700 (PDT), rozrabiak wrote:
> Głupio napisałem:) Chodziło mi o pospinanie tabel tymi 
> "kreskami" od relacji ;) Czyli potworzenie foreign key itp.
Poziom merytoryczny tej wypowiedzi powalił mnie na ziemię :).

> Zastanawiam się po prostu czy jest sens robić to po stronie 
> serwera skoro w C# można to zrobić. Lub odwrotnie.
To w ogołności musi być po obu stronach...

> Serio robisz to po obu stronach?
Trudno powiedzieć o co pytasz. DDL definiuje foreign-keys 
po stronie bazy, a co do aplikacji, to obsługa relacji
jest ściśle zależna od sposobu dostępu do bazy(ADO/Entity 
Framework/LINQ To SQL/NHibernate) - niezależnie od tego
warstwa aplikacyjna(domena) w ogólnym przypadku będzie
mirrorowała schema'e bazy.

Pytanie pomocnicze: Czego używasz do dostępu do bazy? 

Co rozumiesz przez "realizację relacji" po stronie serwera?
Obecność kluczy obcych w schemie?

Co rozumiesz przez "realizację relacji" w warstwie 
aplikacyjnej? "Kreskę" w "diagramie domenowym bazy" w 
designerze Visual Studio?


-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Re: C# i baza danych na serwerze - relacje.
#22442
Author: rozrabiak
Date: Wed, 17 Oct 2012 10:37
45 lines
2587 bytes
W dniu środa, 17 października 2012 12:00:04 UTC+2 użytkownik Łukasz 'Maly' Ostrowski napisał:
> 
> Poziom merytoryczny tej wypowiedzi powalił mnie na ziemię :).
:)
> 
> > Serio robisz to po obu stronach?
> 
> Trudno powiedzieć o co pytasz. DDL definiuje foreign-keys 
> 
> po stronie bazy, a co do aplikacji, to obsługa relacji
> 
> jest ściśle zależna od sposobu dostępu do bazy(ADO/Entity 
> 
> Framework/LINQ To SQL/NHibernate) - niezależnie od tego
> 
> warstwa aplikacyjna(domena) w ogólnym przypadku będzie
> 
> mirrorowała schema'e bazy.
> 
> 
> 
> Pytanie pomocnicze: Czego używasz do dostępu do bazy? 

MySQL .NET connector :)
ADO.

> 
> 
> 
> Co rozumiesz przez "realizację relacji" po stronie serwera?
> 
> Obecność kluczy obcych w schemie?
> 

Tak, utworzenie kluczy obcych z usuwaniem kaskadowym.

> 
> 
> Co rozumiesz przez "realizację relacji" w warstwie 
> 
> aplikacyjnej?

To samo co powyżej, ale w obiekcie dataSet z utworzonymi tabelami.

Nie mam teraz poglądu na VS, więc z pamięci piszę..
Re: C# i baza danych na serwerze - relacje.
#22443
Author: Łukasz 'Maly' Ostrowski
Date: Wed, 17 Oct 2012 11:35
32 lines
2513 bytes
On Wed, 17 Oct 2012 03:37:53 -0700 (PDT), rozrabiak wrote:
> MySQL .NET connector :)
> ADO.

Old school ;-).

>> Co rozumiesz przez "realizację relacji" w warstwie 
>> 
>> aplikacyjnej?
> 
> To samo co powyżej, ale w obiekcie dataSet z utworzonymi tabelami.
> 
> Nie mam teraz poglądu na VS, więc z pamięci piszę..

Nie czuję się przesadnie dobrze w Strongly Typed DataSets, a zgaduję 
że właśnie o to chodzi. Klikasz diagramy bazy danych w VS zapewne ;-). 

Zamiast klikać możesz prawdopodobnie wygenerować te DataSety ze schemy.
Wydaje mi się że uważasz że powtórzenie tego jest bez sensu, bo musisz
robić dwa razy to samo. Nie musisz, per-se, możesz to wygenerować z
żywej bazy, no chyba że toolset MySQL tego nie wspiera(nie zdzwiwiłoby
mnie to szczerze mówiac). Z tego co kojarzę - przeciągało się tabele
z zakładki Server Explorer na Design Surface DataSetu i wszystko się
samo generowało.

Jak wygenerujesz DataSety ze schemy bazy, to relacje będą 
zmirrorowane, dla Twojej wygody - możliwości nawigowania po child 
table'ach etc. 
 
-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads