sql -> évkezelés

sql -> évkezelés

Hozzászólások

Hali!

Egy termelőüzem gépeinek karbantartását nyilvántartó prg.-t szeretnék készíteni, ami SQL adatbázis alapú! (Eddig még csak .dbf alapon dolgoztam, de ha már linux, legyen SQL adatbázison)

A kérdésem az lenne a tapasztaltabb kollégákhoz, hogy hogyan érdemes megszervezni az adatbázis struktúráját, ahhoz hogy az évek külön kezelhetők legyenek! Ez elég formális dolog!

1. Legyen évek szerint lebontva az adatbázis:
adatbázis "év" -> táblák "törzsek, bizonylatok,stb."

2. Az egyes alrendszerek legyenek az adatbázisok és a táblák nevében legyen jelezve az év?
adatbázis "törzsek, bizonylatok,stb" -> táblák "géptörzy_év, bizonylatfej_év, stb_év"

(A törzsek kezelését is éves szinten kell karbantartani)
Várok egy-két ötletet, javaslatot!

Köszi a válaszokat!

Kedves gabcsi!

Szerintem, az adatbázis szerkezetnek a tárolt adatok kapcsolataiohoz kell igazodni, és nem az idejéhez. Minden rekordhoz tartozik egy időpont, s ez alapján már az adatbáziskezelés feladata, hogy az egy időintervallumba tartozó adatokat csoportosítsa.

Biztos szép dolog minden évben új táblákat létrehozni, meg minden, de azt hiszem egy RDB rendszernél el kellene szakadni a file-szintű gondolkodástól. Az, hogy az adataidat hogyan tárolja (sőt még az is hogy hogyan indexeli) legyen az adatbáziskezelő gondja! A tied annyi, hogy az adatok kapcsolódási pontjait (a Relációkat) megálmodd...

Zsiráf

Köszi a választ, teljesen igazad van nagyon belémivódott az a fránya fileszintű dolgok!

Még annyi észrevételem lenne, ha ez kb.: napi 100új recordot jelent, ez egy év alatt rengeteg adat! Ezzel az elválasztom az éveket dologgal nem lehetne ezt a mennyiséget csökkenteni?
Ha esetleg a következő évben más mozgásnemeket akarok használni a régiek helyet, akkor a törzsem teljesen megváltozna és a régi bizonylatok hamis fejléccel v. raktárral futnának!

Esetleg még egy kicsit boncolnánk a kérdést, légyszi fejtsd ki bővebben esetleg példával egy-két szóban! (Nem várok konkrét megoldást, csak a tapasztaltabbaktól 5letet!)

üdv.

Szia gabcsi!

Szerintem, a törzsben a mozgásnemeket nem átírni kell (mármint a megnevezésüket), hanem az újakat felvenni! A régieket meg "inaktívvá" tenni (pl. egy 'aktiv' mező 1/NULL értéke vagy bármi nyavaja...). Az, hogy adatrögzítéskor ez hogy jelenik meg az más kérdés. (lehet akár SQL szintű triggerelés, vagy akár a felhasználói felület programozástechnikája, hogy az inaktív mozgásnemeket nem engedi beválasztani, viszont a régi listákon jönnek.)

Az adatfelvitelek számát nem tudod csökkenteni :wink: Az, hogy az RDBM hogy keres, egy jó rendszer esetén nem nagyon szabadna függeni attól, hogy egy táblában hány record van. Sokkal inkább függ a keresés feltételeitől és a keresztlekérdezések számától sűrűségétől (no és az indexstruktúrától). Tehát, ha a te tábládban a lekérdezést a dátum szerinti feltétellel teszed meg, és van a dátumra indexed, akkor nem szabadna nagy veszteségnek lenni a keresés során, hogy nem csak tíz rekordod van, hanem 100000.

Persze mindig az a kérdés, mennyi adatot kell gyorsan visszakereshetően tárolni. Mert ha mondjuk az X évvel ezelőttieket praktikusan nem kell visszaidézni, akkor időszakonként úgymond "archiválhatod" a "régi" adatokat (egy másik táblába, vagy akár CD-re/DAT-ra, habár ez utóbbi már tényleg nagyon nehezen elérhetővé teheti az adatokat, s manapság winchesterterület van dögivel, tehát én egy egyszerű archive adatbázist javaslok, ha mindenképp csak az aktuális adatokkal akarsz dolgoz(tat)ni :-) ), s az archiváltakat kitörölheted az adatbázisból (persze nem a törzsadatokat, hanem csak a "változó" rekordokat...).

Zsiráf

Millió köszönet!

Sok hasznos 5letet adtál!
A program saját fejlesztésú már működik pár éve m$ (.dbf) rendszerben, most át akarom portolni linuxra és SQL adatbázisra!

Mégegyszer köszi!