ugrás a tartalomhoz

Egy egyszerű, de összefüggő adatbázis létrehozása

Gulredy · 2012. Aug. 17. (P), 09.30
Van egy kisebb excel táblázat, amiről egy adatbázist kellene készíteni úgy hogy abból több minden is összefüggő.
Mivel én nem értek hozzá, ezért itt kérnék segítséget!

--> Itt a táblázat! <--

Szóval a lényege az, hogy minden valutához tartozik adás meg vétel mező, és azokat hozzá kell rendelni minden pénzváltóhoz.

Tehát értelem szerűen a valuta1 Eladás és vétel mezője hozzá legyen rendelve az összes pénzváltóhoz, majd így tovább a valuta 2 is mindegyikhez hozzárendelve.
A lényeg hogy olyan táblázat kell amit módosítani és hozzáférni is könnyen lehetne, mert ezzel az adatbázissal még lesz számomra megoldandó feladat.

Mivel nagyon kezdő vagyok ezen a téren, egy részletesebb leírást (hogy mit hogyan csináljak) szeretnék kérni.

Előre is köszönöm a válaszokat!
 
1

Én először is létrehoznék 3

kuka · 2012. Aug. 17. (P), 10.12
Én először is létrehoznék 3 táblát:

create table valto (
  id serial,
  nev varchar(100) unique not null
);

create table valuta (
  id serial,
  nev varchar(100) unique not null
);

create table arfolyam (
  valtoid integer not null references valto (id),
  valutaid integer not null references valuta (id),
  vetel double precision,
  eladas double precision,
  kezdet timestamp default current_timestamp,
  vegzet timestamp
);
Utána elgondolkoznék, hogy elegendő-e ez így. Mert az árfolyamok változnak. Tehát logikus volna ha az árfolyamoknak érvényességi intervalluma is volna. (Közben már be is raktam a kezdet és vegzet mezőket a fenti kódba.)

Utána jönnének kezelőfelület kérdései. Mivel az azzal kapcsolatos igényeidről egy szót sem írtál még, egyelőre nem érdemes elmélkednünk rajta.
2

Köszönöm a válaszod! Ez az

Gulredy · 2012. Aug. 17. (P), 10.34
Köszönöm a válaszod!
Ez az adatbázis azért kell, mert Excel VBA-n keresztül kell majd meghívni. Az értékeket az adatbázis kívülről fogja beolvasni egy txt fájlból(vagy excelből), amit automatikusan továbbítania kell majd egy excel táblázatnak. Így fog menni a folyamatos frissítés, ezért szerintem nem kell kezelőfelület, sem érvényességi intervallum, mert amikor új fájl érkezik ez automatikusan átírja majd az értékeit.

Bocsi hogy így utólag írom, ezt leírhattam volna hamarabb is. Ezek alapján valamit változtatnál még?
3

Ezek alapján valamit

kuka · 2012. Aug. 17. (P), 10.38
Ezek alapján valamit változtatnál még?
Törölném a korábbi hozzászólásomat. Már semmit sem értek az egészből.
5

Most ez webfejlesztés vagy nem?

Pepita · 2012. Aug. 17. (P), 23.41
Az értékeket az adatbázis kívülről fogja beolvasni egy txt fájlból(vagy excelből)

1. Az adatbázis semmit sem fog beolvasni, hanem a kezelő szoftver (amit ugye megírsz hozzá).
amit automatikusan továbbítania kell majd egy excel táblázatnak

2. Mindent megcsinál a programod automatikusan - már amit beleprogramozol.
3. Ha a bemenet is .xls és a kimenet is, akkor minek ehhez adatbázis? Ilyenkor feldolgozó kell (, ami excelhez nem túl egyszerű).
4. Véletlenül ez nem egy asztali- vagy kis munkahelyi hálózati szoftver akarna lenni? Nem látszik, hogy bármi adat publikálandó lenne, kik a felhasználók?
4

MySQL

hunkris · 2012. Aug. 17. (P), 16.52
Én sem értem, minek ez, de a MySQL be tud olvasni excel táblázatokat.

Egyébként nem automatikus a frissítés. Ha új fájl jön, újra be kell adni a gépnek a fájlt.
6

Sziasztok, bocsi de én

Gulredy · 2012. Aug. 18. (Szo), 08.47
Sziasztok, bocsi de én értettem félre a feladatom, az adatbázisnak nem kell semmit automatikusan csinálnia :)

Amit "KUKA" leírt megoldást szinte teljesen jó úgy ahogy van, egyedül a lejárati idő nem kell belőle! Így ezúton köszönöm szépen a megoldást!

Na már most kérdeznék egy másikat:

Ha beírom ezt a fenti kódot és végrehajtom, az gond hogyha az id-k egyik sem lesz kulcs? Ha kézzel átállítom a kapcsolatok az adatbázisok között (erre gondolok "
valutaid integer not null references valuta (id)
",) meg fognak szakadni vagy maradnak?
(remélem érthető amit kérdezni akarok)


Egyébként nem webfejlesztésről van szó hanem VBA (Visual Basic for applications) nyelvvel meg sql-el kell dolgoznom!

Másik kérdésem lenne még, hogy ha felviszek adatokat excelből mondjuk a valuta név mezőjébe, akkor azokat név szerint fogja tárolni tehát abc sorrendben, nem pedig id szerint. Pontosabban az id sorszámozása megegyezik azzal a sorrenddel ahonnan felvittem az adatot, de a tárolás már abc sorrendben van. Tehát rövid példa van három valuta ebben a sorrendben:
USD
EUR
GBP
Ezeknek a sorrendje nem így lesz hanem abc szerint tehát az adatbázisban már így szerepel
EUR
GBP
USD

Ez nekem azért baj, mert ha innen vissza importálom akkor már az abc szerinti sorrendbe rakja vissza tehát össze keveri ami nekem már nem jó.
Ha kézzel adom be az adatokat akkor is így abc-be rendezi nem id alapján!
Tudom hogy furcsának tűnik hogy minek importálok meg exportálok oda vissza, de szükség van rá a feladatomban.

Erre tudtok valami megoldást hogy hogyan küszöbölhetném ki?


U.I.: Pepita:
Egy tanfolyamra járok ott csinálunk hasonló dolgokat és gyakorlás ként csinálom ezt magamnak!
7

Nemigazán értem

Pepita · 2012. Aug. 18. (Szo), 23.47
Asszem valahogy jobban kéne megfogalmaznod a kérdéseidet, mert én magát a kérdést sem igazán értem, így nehéz rá bármilyen (pláne helyes) választ adni.
Ha beírom ezt a fenti kódot és végrehajtom, az gond hogyha az id-k egyik sem lesz kulcs?
Nem értem: ha a fenti kódot beírod, akkor kulcs lesz. Ha nem kulcsot akarsz referenciaként használni, visítani fog, de próbáld ki.
Egyébként nem webfejlesztésről van szó...
- Bocs, de ez egy webfejlesztésről fejlesztőknek (és persze érdeklődőknek) szóló oldal, úgyhogy jobb lenne, ha a kérdés elején tisztáztad volna. Itt senki sem számít rá, hogy nem webfejlesztéssel kapcsolatos a kérdésed.
- Milyen "sql-lel kell dolgoznod"? SQL = Structured Query Language, adattárolás-megvalósítás terén millió program/driver létezik, sok működésbeli különbséggel. A MySql kifejezetten webes adatbázisszerver, ezen belül is többféle táblával, amiknek más-más képességeik/tulajdonságaik vannak.
Másik kérdésem lenne még, hogy ha felviszek adatokat excelből...
- Ha ennyire Microsoft-központú a téma, valószínűleg az Access lesz számodra a megoldás. Ez "magától tud" Excelből(~be) importálni/exportálni.
- Sorbarendezéssel kapcsolatban pedig olvass utána az általad kiválasztott adatbázis (és táblatípus) indexelési lehetőségeinek. Neked az kb. tökmindegy, hogy fizikailag hogy tárolódnak az adatok, az számít, amit egy lekérdezés eredményeként visszakapsz. Ezt pedig tudod rendezni (ORDER BY 'mezőnév') és ha jól indexelted, még gyors is lesz. Ha időrendi sorrendben akarod, akkor mégiscsak célszerű lesz vmilyen dátummezőt is használnod.

A tanfolyammal kapcsolatban most már igazán érdekelne a fejlesztői környezet. Így vaktában lehetetlen jó tanácsot adni. VBA-t pl. én sose használtam, valamikor még némi VB-t kellett, de nem tudom mennyi különbség van (gondolom környezetben rengeteg). Ami lényeges lenne, az a tanfolyami "sql környezet".