Programovací jazyk pro tvorbu databáze

Kit

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #15 kdy: 06. 08. 2015, 12:20:41 »
Souhlasím, vlastně v excelu to mám už vytvořené, ovšem firma chce víc. Chtějí apku, kterou zapnete s logem naši firmy a poté budou mít přístup k tabulce s jednotlivými klienty apod...

Další věc je ta, že zaplaceno za to nedostanu a firma rozhodně za tohle externistu platit nebude. Zase na druhou stranu na mě netlačí nějak časově, ale chtějí to mít udělané, takže mně stejně asi nezbývá nic jiného než toho zmetka udělat.

Na takové srandičky používám PHP v kombinaci s MySQL. Klient používá browser dle vlastní volby. Výhodou je, že to mohu modifikovat za plného provozu, není přitom omezen počet klientů a nemusím se matlat s grafickým rozhraním. Také mohou být diferencována přístupová práva dle potřeby.

Třeba by jim stačila nějaká wiki :)


mk

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #16 kdy: 06. 08. 2015, 12:49:14 »
Já bych tady viděl několik otázek, na které by bylo vhodné si odpovědět, i když na některé již odpověď máte.

1. Pojede to na síti a bude to víceuživatelské? ( asi ano, odpověď už tu byla)
2. Na jakém hardware to pojede, jaký OS? Widle nebo Linux?
3. Kdo se o tu aplikaci bude starat?
4. Co se s daty plánuje do budoucna?

Moje doporučení pro databázi je PostgreSql, která se dá nasadit jak na Windows tak na Linux.
Asi bych se naučil C# od Microsoftu, který je příbuzný Javě, kterou jste už někde viděl.
Pro vývoj bych použil Visual Studio Express 2013, případně nejnovější verzi 2015.

To že to uděláte v MS Access nebo v LO Base není tak důležité, protože se to stejně musíte naučit.
Pokud jste už něco dělal v Javě, tak přejít na C# je jednodušší a lépe se to učí.
Pokud se o to budete i starat ( kdo jiný než ten, který to vytvořil ), tak správa dat i aplikace bude
pro Vás jednodušší.
Časem totiž přijdou požadavky, na které MS Access nebo LO Base nestačí a stejně to budete předělávat.

Milan

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #17 kdy: 06. 08. 2015, 12:51:30 »
Bohužel, v této oblasti je na trhu obrovská díra. Najít jednoduchý systém, který nevyžaduje pro běh molochy typu SQL, .NET či Java, je celkem pracné. Existuje projekt xHarbour odvozený od bývalého DOS systému Clipper (založený na dialektu xBase), který umožňuje vytvářet kompaktní EXE aplikace, k nalezení např.zde http://free.xharbour.com/free.xHarbour.com/Downloads.html. Na tomto systému je kouzelné to, že obsahuje obrovské množství ukázkových hotových aplikací (asi 450), které jsou ve zdrojovém kódu. Např. kód pro aplikaci Sudoku má 450 řádek a výsledný EXE modul velikost 1,3MB.

Karel

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #18 kdy: 06. 08. 2015, 13:11:39 »
U nás se na prototyp používá MS Access. Snadno se to používá, i rozsáhlejší aplikaci naklikáte za odpoledne. Narozdíl od Excelu to má alespoň náznak databáze (datové typy, názvy sloupců) a jdou v tom dělat formuláře. Dá se nastavit tak, aby při spuštění nešel do vývojářského menu, ale rovnou spustil nějaký formulář.

Nevýhoda je, že uživatel musí mít licenci MS Access. Výhoda je, že to můžete opakovaně předělávat, dokud to nebude plnit účel. S trochou školení si to uživatelé zvládnout upravit sami, takže na přesunutí políčka o centimetr doprava nepotřebujete programátora. Na prototypy je to výborné.

Pokud to funguje a je potřeba to nějak lépe "zabalit", tak to přepisujeme do normálního programovacího jazyka. Měli jsme tu Javu + Oracle, C + SQLite a teď se používá C# a MySQL. Ten jazyk a ta dazabáze nejsou nutně svázané, dá se kombinovat podle potřeb. Vyhoví prakticky jakýkoliv mainstreamový jazyk (Objective C, C++, Pascal,...). Existuje řada nenáročných databází (SQLite stačí soubor na disku, MySQL je zdarma a divný, PostgreSQL je také zdarma a robustní), takže je to o požadavcích jak řídit přístupová práva (kdo vidí soubor tak může vše, nebo má mít někdo jen práva čtení, jiní i zápis), jak řídit transakce (poslední kdo zapíše tak data přepíše, zamykání záznamů nebo rovnou zamykání celého souboru), co sledovat (transakční log, logování přístupu, nic) a jak zálohovat (soubor jednou denně na pásku, vůbec nezálohovat, nebo rovnou kompletní online žurnál) atd.

Tyhle jazyky a databáze se liší v tom, jak dobře a snadno se s nimi pracuje, ale pokud už máte funkční prototyp v MS Access, tak zjistíte, že se ty rozdíly ztrácí. Jedete podle již hotové šablony a vývoj se tak redukuje na "napsat to znova v tom jiném prostředí" a to jedna ku jedné.

Osobně tedy doporučuji použít nástroj typu MS Access nebo Kexi a aplikaci vytvořit v tom. A pak se ptát, kde vás díky tomu tlačí bota a zda se vyplatí to překlopit do něčeho jiného. Teprve na tom, kde je problém, bych pak vystavěl otázku, v čem to napsat. Člověk totiž za provozu zjistí, že problémy jsou jiné, než předpokládal. Například se nám stalo, že jsme předpokládali, že problém s prototypem bude v tom, že na tabletu musí být MS Windows s MS Access a to bude krutě pomalé. Nakonec to funguje rychle a problém je naopak v tom, že lidé musí být neustále připojeni na síti. Vyřešeno to bylo replikací MS Access databáze. A teď hledáme, do čeho to přepíšeme. A protože nás bota momentálně netlačí, tak s tím otálíme.

Začít to psát hned z fleku a bez předchozích zkušeností jako řekněme C# a SQLite bude ze začátku jen zbytečným zdrojem frustrace.

PS: Píšete, že máte prototyp v Excelu. To je trochu past, protože má velmi specifické uživatelské rozhraní, které prakticky nejde replikovat v jiném prostředí. Jeho "vidím vše najednou", CTRL+F, sloupce nemají názvy ale nadpisy, neexistence datových typů, každá buňka může mít jiný formát, Copy & Paste oblastí buněk, vkládání řádků a sloupců kdykoliv a kamkoliv, vlookup, podmíněné formátování atd. jsou věci, které nejdou rozumně vytvořit v "normálním programovacím jazyce". Pak se snadno dostanete do pasti, když předěláte tabulku z MS Excelu do C# a uživatel pak na vás smutně kouká, protože je zvyklý nepotřebné řádky a sloupce skrývat, důležité buňky si obarvovat, dolu pod tabulku si psát poznámky a doprava za tabulku si připisovat další záznamy.

PS2: Ve vašem případě vidí jako nejzajímavější otázku to "a poté budou mít přístup k tabulce s jednotlivými klienty". Bude seznam součástí té aplikace, takže každý, kdo "apku dostane" bude mít seznam vlastní? Nebo chcete mít ten seznam jediný u vás a ta "apka" se bude, bez ohledu na to, kde ji kdo spustí, logovat k vám do firmy a stahovat si aktuální verzi seznamu? Má aplikace umět seznam editovat? Protože pokud ne, tak jak v něm chcete dělat změny? Ještě jinou apkou, kterou už bude mít jen "editor"? To další už mi přijde jako snadné, ale právě to "kde a jak ta data existují" bude to zásadní.

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #19 kdy: 06. 08. 2015, 13:29:42 »
SQLite + programovaci jazyk podla vlastneho vyberu.


Kit

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #20 kdy: 06. 08. 2015, 13:42:03 »
SQLite + programovaci jazyk podla vlastneho vyberu.

To je dobrá volba. Databáze SQLite však nesmí být na sdíleném úložišti - ostatně to platí pro všechny databáze. Nejlépe je jí tam, kde je i ta aplikace.

ghost

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #21 kdy: 06. 08. 2015, 14:37:42 »
Na tyhle veci se pouziva napr. Apex, Access, a podobne, kde si to clovek naklika a nemusi nic programovat...

pepa

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #22 kdy: 06. 08. 2015, 14:41:29 »
No kdyz to vidim, tak bych doporucoval pouzit Excel (Calc,...). Je to jednoduche, spusti se to poklikanim, je to spolehlive, hlavicky si nadefinujete jak chcete a navic to umi spoustu uzitecnych funkci.

Nechci vas podcenovat, ale podle popisu to vypada, ze nevite ani kde zacit. Tzn. na konci vypadne zabugovany zmetek, ktery nebude spolehlive fungovat.

Souhlasím, vlastně v excelu to mám už vytvořené, ovšem firma chce víc. Chtějí apku, kterou zapnete s logem naši firmy a poté budou mít přístup k tabulce s jednotlivými klienty apod...

Další věc je ta, že zaplaceno za to nedostanu a firma rozhodně za tohle externistu platit nebude. Zase na druhou stranu na mě netlačí nějak časově, ale chtějí to mít udělané, takže mně stejně asi nezbývá nic jiného než toho zmetka udělat.

Tak napis jen omacku v C#.net kde zobrazis ten excel

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #23 kdy: 06. 08. 2015, 16:41:11 »
Možná by to taky šlo prototypovat úplně jednoduše přímo v sql databázi (Mysql, Postgres) a nějakém gui (přes browser třeba Adminer). Měl byste to pod loginem, mohl byste  nastavit základní oprávnění, vytvářet tabulky a propojovat je, funguje tam i proklik z řádku tabulky na související záznam v další tabulce, na složitejší věci byste napsal sql dotazy a pohledy. Pocvičil byste se v sql a výsledkem by byla hotová struktura databáze a předpřipravené sql dotazy pro běžné operace. Pak by se teprve šlo zamyslet, jakou cestou přidat trochu uživatelského pohodlí a firemního brandu.

Nejkomplikovanější na celé úloze bude nejspíš správně vyřešit konkurenční přístup více uživatelů pro úpravy. Zde se můžete celkem zapotit, zejména pokud to má být neprůstřelné a zároveň snadno srozumitelné pro uživatele.

Pro začátečníka to může být dobrý úkol - pokud Vás to bude bavit a dostanete na to v zaměstnání čas, běžte do toho :-) Ale počítejte s tím, že to bude dost práce a času. Pokud záleží na tom, aby to i fungovalo bezchybně a bylo to robustní, budete potřebovat někoho zkušeného, kdo Vám bude dělat oponenturu a kdo bude kód průběžně revidovat. Bez toho mohou náklady na zhotovení a opravy mnohonásobně převýšit běžnou cenu u placeného externisty (nehledě na to, že může aplikace poskytovat špatná data nebo data i zničit).

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Programovací jazyk pro tvorbu databáze
« Odpověď #24 kdy: 06. 08. 2015, 19:05:06 »
Další věc je ta, že zaplaceno za to nedostanu ...

Tak proc to delate? Vy jste ve firme uz zavedli komunismus? Nebo maji tak krasne oci?

Snow

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #25 kdy: 06. 08. 2015, 19:46:37 »
Jestli dobre chapu co chces tak doporucuji Python + Django framework a nejlepe postgresql
Pred asi rokem sem dostal za ukol naprogramovat aplikaci do ktere zdigitalizujeme veskere nase ucetnictvi (zaloha faktur scan + vypsani do fieldu aby se v rom dalo hledat)
Jedna z vyhod djanga je ta ze si vytvoris databazovej model a na nej se ti vytvori administrace ktera v zakladu funguje a nemusis pro to nic delat ale zaroven si ji muzes upravit podle sveho...

Snow

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #26 kdy: 06. 08. 2015, 19:55:35 »
Jestli dobre chapu co chces tak doporucuji Python + Django framework a nejlepe postgresql
Pred asi rokem sem dostal za ukol naprogramovat aplikaci do ktere zdigitalizujeme veskere nase ucetnictvi (zaloha faktur scan + vypsani do fieldu aby se v rom dalo hledat) Pouzil sem prave Django, protoze to vyresilo spoustu veci za me, administrace, pristupova prava...
Jedna z vyhod djanga je ta ze si vytvoris databazovej model a na nej se ti vytvori administrace ktera v zakladu funguje a nemusis pro to nic delat ale zaroven si ji muzes upravit podle sveho... Pak taky ze v zakladu pouziva sqlite, nemusis tedy na vyvoji resit DB, coz na jednoduche aplikace staci... Na ostrej provoz ale pochopitelne pouzij neco jineho, nejlepe ten postgres...

andy

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #27 kdy: 06. 08. 2015, 19:59:49 »
Doba pokrocila, mnoho milionov pretieklo korporatnymi technologiami, ale tieto foxpro a delphi boli aj tak najlepsie RAD nastroje. A preto by som sa pozrel na lazarus.

Anonim

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #28 kdy: 06. 08. 2015, 20:56:03 »
Už z toho dotazu, jak je položený, bych řekl, že bys tu databázi neměl dělat ty alespoň ne jenom ty. Zase na druhou stranu to může být pro tebe dobrá škola.
Osobně doporučuji MS Access případně LibreOffice (s tím jsem nepracoval). Dá se tam udělat funkční věc poměrně rychle a hlavně tam snadno ty věci upravíš, když se ukáže, že je to potřeba předělat, protože uživatelé chtějí něco jiného nebo nebyl dobrý design. A doporučuji si něco načíst o designu databází, není to úplně triviální a není to jen o tom jazyku. Až nastavíš základní schéma propojení tabulek, tak se pokus poptat u někoho, kdo databáze dělá, jestli to máš dobře.
Tvorba databáze je velký projekt a chce rozhodně dobrou analýzu, což je zase těžké udělat, když nevíš, na co se vlastně zeptat...

Pavel...

Re:Programovací jazyk pro tvorbu databáze
« Odpověď #29 kdy: 06. 08. 2015, 21:55:56 »
mozno by si sa mal v prvom rade zamysliet, ci fakt nestaci Excel.

Mozno len nevies, ze Excel by zvladol to co od Teba chcu :)