Többszempontos tábla létrehozása

Többszempontos tábla létrehozása
2007-04-30T11:33:50+02:00
2007-05-05T09:44:33+02:00
2022-10-30T12:55:33+01:00
  • Azt hittem, már lezártnak tekinthető a topic...De így legalább látom, hogy már megint nem fogalmaztam jól. Tehát az oszlopok csak az anyára és a lányra vonatkozik, tehát csak ez a két részleg (persze van, hogy a lánynak több oszlop is jut az Excelben). A lány látja anyát, az anya látja lányát, de lány nem látja másik lányt. Mert másik Excelt kap, többnyire ugyanazokkal az adatokkal, bár 3 fajta van, mert 3 típusú lány van. A lány nem tudja írni az anya adatát, az anya meg nem akarja átírni a lány adatát. Ez lapvédelemmel lett megoldva.

    Egyébként mellékesen megjegyzem, hogy jogos az ERP-s dolog! Ezt majd felvetem nekik.

    Szerintem ha ezt elfelejted a webes felületen akkor lényegesen egyszerűsödik a dolog. Egy emberke egy oszlopot tölt ki. Semmi köze a többi adathoz.


    Gondoltam erre is! Egyre jobb ötleteket adsz. Köszönöm.

    Az anyavállalatnál kell csak az összes oszlopot megjeleníteni egy jelentésben (és gondolom soronként, meg oszloponként összesíteni)


    Jajj, hogy ez eddig nem jutott eszembe Ezt is köszönöm.
    Mutasd a teljes hozzászólást!
  • Egyébként jelen pillanatban akkor egy dolgot nem értek:
    Ha ezt az Excel-t leküldik a leányokhoz akik kitöltik akkor mindenki látja és át tudja írni a többiek adatait?
    Tehát nem konszolidálnak, hanem egymás után kitöltik az adatokat?
    (eddig azt hittem, hogy ezt a táblázatot - tehát minden oszlopát - egy ember tölti és úgy küldi fel valahová)

    Szerintem ha ezt elfelejted a webes felületen akkor lényegesen egyszerűsödik a dolog. Egy emberke egy oszlopot tölt ki. Semmi köze a többi adathoz.
    Az anyavállalatnál kell csak az összes oszlopot megjeleníteni egy jelentésben (és gondolom soronként, meg oszloponként összesíteni)
    Mutasd a teljes hozzászólást!
  • No pont erre szoktak ERP rendszert beüzemelni .
    Az adatok konszolidálása ebben a formában nem épp a legideálisabb út.

    Bár lehet,hogy a módszer jó, csak akkor:
    - megfelelően védett excel file-t kell használni (amibe Jolika nem tud belepiszkálni, csak az adatokat beírni)
    - a központban valamiféle progi dolgozza fel a válaszokat, ellenőrizve
    Ennek a formnak a letöltését illetve a kész excel feltöltését meg ki lehet tenni a webre (kiváltani az email-t).


    Ha meg adatbázis akkor felejtsd el az excel táblázat formát.
    Mutasd a teljes hozzászólást!
  • Már tényleg nem akarlak benneteket feltartani, mert úgysem jár érte pont. Eddig is segítettetek és ezt köszönöm nektek.

    De azért hagy mondjam el, hogy kezditek túlbonyolítani a dolgot: én elkezdtem a részlegeket ügyfeleknek hívni, ti pedig partnereknek, most pedig mind a kettőt használjátok. Nem csodálkozom, hogy nem tudjátok követni, mert már én is alig

    Tehát úgy kell elképzelni, mint egy anya-(főrészleg) és leányvállalatokat(alrészleg): anya mondja, kell az összesítő "kimutatás", beleírják Excelbe a lányok, majd az anya kiegészíti a sajátjával és ezt látja a vezetőség. Nem minden lány ugyanazt az Excelt tölti ki. Úgy tudom, 3 forma van.

    Ezt csak azért írtam le, hogy hátha így átláthatóbb. De mint már fent említettem, köszönöm mindenkinek, hogy segített és tényleg nem szeretném rabolni az időtöket feleslegesen (nem jár pont!).
    Mutasd a teljes hozzászólást!
  • Nos, igen.

    1. szabály: A főnöknek mindig igaza van.
    2. szabály: Ha a főnöknek mégsem lenne igaza, életbe lép az első szabály.

    Következtetés: olaci, ha rám hallgatsz azt csinálsz amit akarsz!



    Valami nagy állami cég lehet (BKV, MÁV(erről tényleg el tudom ezt a hülyeséget képzelni)).
    Mutasd a teljes hozzászólást!
  • Én is csak következtetek és én sem egészen értem a dolgot (de már nem is akarom )
    Mutasd a teljes hozzászólást!
  • Lehet, hogy én is némi fogalmi zavarban szenvedek?

    Partner az a cég, akitől én(mint belső ember) vásárolok valamit (vagyis ő a szállító) és ügyfél az aki tőlem vásárol (vagyis ő a vevő)


    Bár végülis, ha úgy nézem, hogy vannak a partnerek, akinek csinálom a programot (ergo külsős vagyok) és azoknak vannak az ügyfelei, akkor ok.

    Csak azt nem tudom, hogy ha 2 partnercégnek ugyanaz az személy, cég az ügyfele, akkor honnan tudod, hogy az adott tétel(adat) az kitől származik?

    Bár lehet, hogy most már én vagyok belegabalyodva és nem igazán látom át ezt a céget.

    Valami nagyon nem oké itt (de lehet, hogy csak nekem)
    Mutasd a teljes hozzászólást!
  • Majd abban a 6-os "fő" táblában ezt is eltárolhatod


    Akkor már inkább az 1-es táblában (szerintem). És akkor megvan a teljes lánc:
    adat - részleg - partner - ügyfél
    Mutasd a teljes hozzászólást!
  • Khm.
    Egyre furcsább ez a topic :)

    A helyedben megpróbálnám átírogatni a neveket és felrakni, hátha úgy jobb adatbázist tudunk neked összerakni.

    Azt mondod van 3 db ügyfeled.
    Ez oké.
    Ezt is felveheted egy táblában.
    ugyfel_id
    ugyfel_nev
    ugyfel_cim
    ugyfel_ize....


    Majd abban a 6-os "fő" táblában ezt is eltárolhatod, hogy az adott tétel, az kihez tartozik. Ide már csak az ugyfel_id-t teszed bele.

    Talán a legjobb lenne egy MS Access neked ott is a kapcsolatok nézet.


    Az a baj, hogy te mindent "több" helyen, több "lapot" akarsz megjeleníteni. Valahogy úgy kell az adattáblák mezőit megállapítanod, hogy mindent bele tudj préselni. Vagyis egy kimutatást csinálj.

    A sorrenddel kapcsolatban már lesz egy kis problémád, mert az erősen teljes n-gráf szagú.







    Mutasd a teljes hozzászólást!
  • Lehet, hogy egyszerűbb lenne egy dokumentum management rendszert készítened:
    - Eltárolod a fájlokat a szerveren (xls-eket, de akármi mást is)
    - Adatbázisban tárolod, hogy milyen fájlok vannak feltöltve
    - Letölti magához a user (egy felületen keresztül), addig más nem tudja letölteni, hanem kiírja, hogy xy-nál van módosításra
    - Amikor végzett a módosítással visszatölti a fájlt, felszabadítva ezzel mások számára
    - Ha nem szeretné módosítani akkor egy mégse gombbal felszabadítja


    Esetleg meg lehet fejelni email értesítésekkel.
    Lehet bele history-t is tenni (utolsó x példányt megtartani)
    Lehet logolni, hogy mikor melyik verziót ki töltötte le, ki töltötte fel, stb.
    Mutasd a teljes hozzászólást!
  • Mint említettem a legelején: csinálhatod egytáblásan, pikk-pakk kész leszel vele, csak annak semmi köze a relációs adatbázis-kezeléshez.
    Ha adatbázisban akarod tárolni az adatokat akkor azt valahogy így kell, mert így foglalja a legkevesebb helyet és így lesz karbantartható.
    Mutasd a teljes hozzászólást!
  • Jeeeee, kezd bonyolódni a dolog

    Ami probléma az az, hogy ha ebből a táblából szeretnél egy pontosan olyan táblázatot mint az excel file volt akkor azt a MySQL nem tudja


    Na ezért szeretek a prog.hu-ra "járni", mert itt mindig tanul az ember! Pl. nem tudtam, hogy a MySQL-en kívül van olyan adatbázis-kezelő, amelyik pontosan ilyen Excelesen tudja letárolni az adatokat.

    Köszönöm és örülök, hogy segítesz, de ebben még mindig nem látom azt az általam említett 30 (azaz 30*1) tábla leegyszerűsítését! Kb. 10 tábla lenne és 3 ügyféltípus. Még mindig nem érthető, hogy miért akartam egytáblásan letárolni az adatokat? Ezt a többiektől is kérdezem, nem csak tőled!
    Mutasd a teljes hozzászólást!
  • Ha a sorrend is fontos akkor valahová fel kell venned egy ilyen mezőt is (sorokhoz az 5. táblába, oszlopokhoz a 2-ba).

    Ami probléma az az, hogy ha ebből a táblából szeretnél egy pontosan olyan táblázatot mint az excel file volt akkor azt a MySQL nem tudja (PIVOT táblát nem tud).

    Ezért dinamikusan kell összerakni a lekérdezésedet:
    1) Lekéred, hogy milyen oszlopaid vannak az adott partnerhez (Részlegek)
    2) Ebből összeállítasz egy nagy lekérdezést
    3) Futtatod ezt a lekérdezést.
    4) Kliens oldalon összedobod a táblázatot (fejléc az 1. pont eredményéből, adatok a 3. pontból)

    (A sorok meg adják magukat az 5. tábla alapján)
    Mutasd a teljes hozzászólást!
  • Még mindig nem értem

    1. Honnan tudja a program, hogy mely tételekre van szükség és milyen sorrenben, illetve milyen sorrenben jelenjenek meg a részlegek? Csak bele kell égetni a neveket, vagy a kódot!

    2. Ha több Excel táblám van, akkor is le tudom tárolni, de honnan tudja a program, hogy mely tételek mely táblához tartoznak, azaz melyik képernyőn (menüpont alatt) jelenjenek meg?
    Mutasd a teljes hozzászólást!
  • Igen.
    Feltéve, hogy a tételek eltérőek lehetnek az egyes partnereknél.
    Ha mindenkinél egyforma akkor nincs szükség az 5. táblára.
    Mutasd a teljes hozzászólást!
  • Jaj, nem a részleget akartam írni, hanem a tételt! Elvileg nem lenne szükségem az 5. táblára, akkor most azért hozzam létre, hogy ne kelljen beleégetni a kódba?
    Mutasd a teljes hozzászólást!
  • Nem.
    A Partner neve alapján vissza tudod keresni a PartnerID-t az 1. táblában (pl. egy legördülővel egyből meg is van az ID)
    A 2. táblából ki tudod olvasni a Partnerhez tartozó részlegek ID-ját és nevét (SELECT ReszlegID, ReszlegNev FROM Reszlegek WHERE PartnerID=$PartnerID).

    Semmit nem kell beégetned a kódba.
    Mutasd a teljes hozzászólást!
  • Tehát, ha "össze akarok rakni" egy táblát, akkor a programba ugyanúgy be kell ágyaznom a tétel/részleg nevét! Kiolvassa a kódban megadott nevet a megfelelő táblából(tétel/részleg) és a így megtalált ID-nak megfelelő sorokat keresi a 6. táblában! Vagy eleve a PHP kódban kell lennie a tétel/részleg ID-jának, amit meg akarok jeleníteni?
    Mutasd a teljes hozzászólást!
  • Semmi baj
    Mutasd a teljes hozzászólást!
  • Bocs.
    Mutasd a teljes hozzászólást!

  • de nem vette bele sem az időszakot,


    Ez biztos?

    3. tábla

    RészlegID, IndokID, összeg
    1, 1, 1000.000
    3, 1, 250.000
    2, 2, 350.000 // Győr eszközért.
    1, 4, 800.000 // Bp, Készletbesz

    Ha az év.hó is érdekes, akkor azt is ide veszed fel.



    sem a ügyfeleket!


    Ha több Cég van, akkor 0. tábla cégek és az 1-esben van egy CégID



    Akkor most belevettem, vagy sem?
    Mutasd a teljes hozzászólást!
  • Az 5. táblát azért vezettem be, hogy amikor rögzítesz, vagy megjelenítesz akkorcsak azok szerepeljenek amiket használ egy adott partner. Ez lehet, hogy ki is hagyható, de mivel nem ismerem az adatokat nem tudom eldönteni.
    Lehet, hogy "Nevenincs Bt" használja az "Eszközértékesítés" tételt, de "Nemistudomhogyhívják" Kft nem "könyvel" ilyen tételt, ekkor meg sem jelenítjük nekik rögzítésre.

    itt aztán olvashat a rendszer 1000-rel, mire összegyűjti az infókat

    Egyébként meg a php oldal dolgozik 1000-el.

    Működik ez több kimutatástáblában is, vagy azt a programnak kell tudnia, hogy egy oszlop/sor mely táblában szerepel?

    Az összes excel fájlodat kiválthatod ezzel a 6 táblával, hisz minden adat szerepel benne. (legalább is, ha jól értettem a feladatot)
    Mutasd a teljes hozzászólást!
  • Ennek már kezd tudástár szaga lenni Egyébként nem könyvelésről van szó, de mindegy

    1-4-ig értem! Az 5. micsoda? Nem a tételt kell tiltani/engedélyezni, hanem részleg oszlopot, hogy ki, mit tölthet ki. Akkor tétel-részleg csere az 5-ösben?

    Ugye a 6-os a "fő" tábla? Na erről írtam: itt aztán olvashat a rendszer 1000-rel, mire összegyűjti az infókat a táblákból!

    Működik ez több kimutatástáblában is, vagy azt a programnak kell tudnia, hogy egy oszlop/sor mely táblában szerepel?
    Mutasd a teljes hozzászólást!
  • Hogy lehet elfelejteni, amikor benne lenne a kódban? Nem menti rendesen? Ilyen is lehet?

    Lehet.
    - Megszakad a kapcsolatr a webszerver és az sql szerver közt
    - Lepukkan valamelyik szerver (vagy szolgáltatás)
    - stb
    Ha ez pont az insert és az update utasítások közt történik akkor az egyik végrehajtásra került a másik meg lóg a levegőben.
    Erre elvileg létezik tranzakció-kezelés ami megoldja (kérdés, hogy MySQL-nél mennyire megbízható).


    A másik meg, hogy ha 1 év múlva előveszed a progit és kiegészíted valami kis kóddal nem biztos, hogy eszedbe jut, hogy az összeget is módosítsd. Sose bízz magadban sem.
    Mutasd a teljes hozzászólást!
  • Ugyanis 10 ilyen tábla lenne ügyfélfajtánként, tehát ha ezt meg tudnám oldani 1 táblában, akkor a többit is hasonlóképp, összesen max. 30 tábla lenne csak ezekből, míg ha szétszedős módszert választom, akkor kb. 100!


    Biztos?
    Szerintem max 6-7 tábla, csak rendesen kell összedobni. Nézzük:

    1. Partnerek rögzítésére
    Partnerek
    PartnerID
    PartnerNév

    2. Adott cégnek milyen részlegei vannak:
    Reszlegek
    ReszlegID
    PartnerID
    ReszlegNév

    3. Milyen időszakok léteznek?
    Idoszakok
    IdoszakID
    Ev
    Honap

    4. Milyen könyvelési tételek lehetnek?
    Tetelek
    TetelID
    Megnevezés
    Tipus [Kiadás/Bevétel]

    5. Adott cég melyik könyvelési tételt használhatja?
    PartnerTetel
    PartnerID
    TetelID


    6. Az összegek
    Konyveles
    ReszlegID
    IdoszakID
    TetelID

    Osszeg

    szerk: a még fel sem tett kérdésre válaszoltam
    Mutasd a teljes hozzászólást!
  • OK!

    Nos, arra lennék kiváncsi, hogy nézne ki többtáblás megoldással. Micu írt már példát, de nem vette bele sem az időszakot, sem a ügyfeleket!

    Akkor ez hogy nézne ki több táblával?
    Mutasd a teljes hozzászólást!
  • Biztos, hogy mindig fogod módosítani? És ha valahol egyszer elfelejted?
    Vagy nem menti rendesen a gép?


    Hogy lehet elfelejteni, amikor benne lenne a kódban? Nem menti rendesen? Ilyen is lehet?
    Mutasd a teljes hozzászólást!

  • Amikor módosítok egy értéket, ezzel párhuzamosan módosítom az összesent is! Vagy ez nagy hülyeség?


    Ez tényleg hülyeség!
    Biztos, hogy mindig fogod módosítani? És ha valahol egyszer elfelejted?
    Vagy nem menti rendesen a gép?

    Az adatbázis tranzakciókezelése, meg naplózása ezt szolgálná, bár a mysql ebből a szempontból igencsak halovány.

    Egy adatbázis nem teljesen így működik, hogy végignézi a ciklussal az összes adatot. Van a kifejezésfa aminek segítségével leírható a lekérdezés. A lekérdezést pedig célszerű úgy megírni, hogy minél kevesebb adaton kelljen a gépnek végigmenni, vagyis a fában minél lentebb tenni a sorok összekapcsolását.
    Egyik ilyen speciális dolog a ritka index, amit a sűrű index-re hoznak létre. Ez ha van egy index-ed egy csomó szám, akkor nem fog végigmenni az összes számon, hanem egy-két összehasonlítás után már a kívánt blokkot vizsgálja és csak azt. Abból pedig a hagyományos index-szel gyorsan megtalálja a kívánt adatokat.

    Te valójában az RDBMS-ek belső adatábrázolására vagy kíváncsi? Huh az igencsak nehéz dió lesz. Én az Ullman-féle Adatbázisrendszerek (Alapvetés, valami belső működéssel kapcsolatos a másiknak a címe) és abban vannak ezek leírogatva. De ezek a kereskedelemben kapható rendszereket meg sem közelítik.

    Azért egy ilyen nagyságrendű vállalatnál szoktak időnként zárásokat is végezni(havonta, negyedévente) és utána már csak azzal számolnak.
    Mutasd a teljes hozzászólást!
  • 1. OK!
    2. Nem szövegként tárolom, kivétel, ha több táblásan megoldás mellett döntök!
    3. Számlázó rendszernél egyértelműen a többtáblásat választom! Mellesleg az "komoly" rendszer és nem csak egy szimpla lekérdezés/megjelenítés!

    Ne akard az Excel-t 1-1-ben átültetni SQL-re.


    HTML-re akartam volna 1-1-ben átültetni és nem SQL-re. Tehát a megjelenítés kinézete (vagy hogy mondjam másképp) lehetne Exceles, hogy ne kelljen weblapszerkesztéssel foglalkozni! Vagy ez hülyeség?
    Mutasd a teljes hozzászólást!
  • Ez az! Ezt várom, hogy végre normálisan megmagyarázzák, hogy miért nem jó, amire gondolok!

    Viszont a plusz tábla az az én példámban nem, csak a tiedben szerepel (nem tudom, miért tulajdonítod nekem)! A view-os pedig amúgy is kellene. És, ha már felhoztad, pont a lustaságom a fő probléma Ugyanis 10 ilyen tábla lenne ügyfélfajtánként, tehát ha ezt meg tudnám oldani 1 táblában, akkor a többit is hasonlóképp, összesen max. 30 tábla lenne csak ezekből, míg ha szétszedős módszert választom, akkor kb. 100! Na ezért kötekedem!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd