C# a baza danych

0

Witam
Na starcie proszę o wyrozumiałość, jeżeli zadaję głupie lub banalne pytania, ale jako że nie jestem (jeszcze!!!) ekspertem w programowaniu, to jestem usprawiedliwiony :p
Ostatnio zacząłem się wdrażać w ado.net, ale niestety mam też pewne zaległości w bazach danych i tworząc program nie mogę niektórych rzeczy zrozumieć.
Otóż, założenie mojego programu jest takie, że program ma połączenie z bazą danych, która przechowuje tabelę z krotkami o wartości tekstowej. Jeżeli użytkowni zechce stworzyć nową listę, to wtedy tworzy się nowa tabela (to tak jak np nowy arkusz w Excelu), ale zastanawia mnie, czy w C# można stworzyć bazę danych na starcie programu czy najpierw muszę ją stworzyć MySql i wrzucić do katalogu programu? Nie da się tego zrobić tak, że gdy użytkownik wybierze w menu tworzenie pierwszej listy jakiś tam rzeczy, to wtedy program tworzy plik bazy danych?
2. Czy robi jakąś rożnicę, czy wszystkie tabele są przechowywane w jednym pliku bazy danych czy w kilku?

0

Ad. 1. Da się utworzyć bazę danych programowo. Przecież to tylko polecenie SQL, które trzeba wysłać do serwera SQL, aby je wykonał.

Problem jest inny:

Jeżeli użytkowni zechce stworzyć nową listę, to wtedy tworzy się nowa tabela

To jest bez sensu. Tabela powinna być jedna, powinna mieć kolumnę id listy będącą kluczem obcym wskazującym na tabelę zawierającą listy. Baza danych to nie jest arkusz kalkulacyjny.

Ad. 2. Coś przekombinowane to pytanie, tabele znajdują się w bazie, a nie w pliku bazy. To, jak i ile plików używa SZBD, nie ma znaczenia dla aplikacji.

0

Dzięki za odpowiedź.
Ale zastanawia mnie jeszcze, czy wszelkie połączenia programu z bazą danych są realizowane przez ado.net czy są jakieś inne sposoby?

0

ADO, ODBC, OLEDB... tylko po co

0

@somekind
Lubię czytać Twoje posty bo piszesz bardzo logicznie i rzeczowo (widać, ze wiedzę sporą masz) ale tego nie rozumiem... jak to po co? Aplikacji i systemów nie tworzy się niestety tylko w najnowszych technologiach, czasami trzeba spuścić spodnie i brać udział w rozwoju starych systemów nie ingerując za bardzo (z różnych powodów) w ich pierwotną architekturę (jak bardzo gówniana by nie była biorąc za punkt odniesienia najnowsze trendy) :)

Z tych co wymieniłeś ODBC jest faktycznie najstarszą technologią i obecnie nie jest za bardzo popularna jeśli chodzi o .NET ponieważ uzyskasz dzięki niej dostęp jedynie do relacyjnych baz danych do których istnieje odpowiedni sterownik ODBC (SQL Server, Oracle, Sybase... etc) ale już OLEDB i jego odpowiednie providery daje więcej możliwości jak np: dostęp do danych w plikach XML, usłudze Active Directory lub arkuszach EXCEL. Komponenty oparte o OLEDB są wciąż mocno wykorzystywane w usługach analitycznych SQL Server jak Analysis Services, Integration Services i Reporting Services choć i to się powoli zmienia bo jakiś czas temu Microsoft zapowiadał, że wersja 2012 jako ostatnia ma wspierać OLEDB (a przynajmniej jeśli chodzi o providera SQL Serverowego) a samo wsparcie ma potrwać jeszcze kilka lat. I tak, wiem, że do obsługi XML czy arkuszy EXCEL są inne (lepsze) metody dostępu ale znajomość tego potrafi dupę uratować np: w środowisku gdzie nie ma zainstalowanego Office'a i jego bibliotek Interop-owych oraz nie można używać zewnętrznych bibliotek.

@aaquillus
Nie... nie jesteś usprawiedliwiony. Przy dzisiejszym dostępie do wiedzy (Google, MSDN czy pierdyliard tutoriali gdzie pokazują łopatologicznie co i jak krok po kroku) byłoby mi trochę wstyd zadawać takie pytania... niezły początek jak na próbę zostania ekspertem. Jak dla mnie ten post (jak i 70% innych w tym dziale) powinien trafić do kategorii 'Newbie'.

1 użytkowników online, w tym zalogowanych: 0, gości: 1