Gutes Konzept?



  • Hallo,

    ich vermute, dass ich mit diesem Thema hier off topic bin, aber mangels Alternativen frage ich Euch.
    Ich bin jetzt seit ca. 10 Jahren in VBA, Java und C++ unterwegs, habe zig Tutorials gelesen und im Netz geforscht, aber bisher keine Antwort gefunden auf die Fragen:
    - Wie sieht ein gutes Programmkonzept aus, um … zu realisieren?
    - Was ist eine gute Strategie, um … zu erreichen?
    - Wo werden diese Konzepte/ Strategien im Netz diskutiert?
    - Wo finde ich Bücher dazu?

    Ihr versteht, was ich meine?

    Konkret:
    Ich möchte eine eigentlich simple kleine Anwendung realisieren, um Benutzer, Gruppen und Berechtigungen zu verwalten und in eine einzelen Datei – keine Datenbank (da Kunde Probleme mit Treibern fürchtet) – speichern.
    Aus meinen Erfahrungen mit Datenbanken stelle ich mir das Datenmodell in Form von 5 Tabellen vor: 3 Datentabellen (Benutzer, Gruppen, Berechtigungen), 2 Zuordnungstabellen (ZO_Gruppe_Benutzer, ZO_Gruppe_Berechtigung)

    Wo finde ich Antworten auf folgende Fragen:
    - Wie verwalte ich die einzelnen Tabellen: Array, Vector, Liste, struct, eigene Klasse?
    - Gibt es bereits existierende Klassen, Objekte, die für Verwaltung und Speicherung ein gutes Handling bieten.

    Warte gespannt!
    Leo



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Leo Freitag schrieb:

    Hallo,
    ich vermute, dass ich mit diesem Thema hier off topic bin, aber mangels Alternativen frage ich Euch.

    bist offtopic, wenn die die realisierungssprache egal ist. bist ontopic, wenn du es mit c++ machen willst, denn in c++ macht man sachen anders als in basic.
    bist aber wieder offtopic, wen du nur wissen willst, wie man es mit dem msvc macht. außer, die fragen sind offensichtlich für andere compiler praktisch gleich zu beantworten.
    warten wir einfach ab, ob man den thread erschiebt.

    Ich bin jetzt seit ca. 10 Jahren in VBA, Java und C++ unterwegs, habe zig Tutorials gelesen und im Netz geforscht, aber bisher keine Antwort gefunden auf die Fragen:
    - Wie sieht ein gutes Programmkonzept aus, um … zu realisieren?

    keine allgemeine antwort möglich. so ein kleines programm wie unten genannt worde ich gar nicht groß planen. nen prototypen in ms-access reinhauen und gucken, wie sich die tabellen anfühlen und die beziehungen-ansicht als erd-ersatz ausdrucken. aber nur als anhaltspunkt, man kann später gerne davon abweichen.

    - Was ist eine gute Strategie, um … zu erreichen?

    keine allgemeine antwort möglich. hängt eigentlich davon ab, was du schon kannst. manche leute müssen vorher struktogramme malen und manche leute können es sogar ohne besser.

    - Wo werden diese Konzepte/ Strategien im Netz diskutiert?

    ka. aus sowas halte ich mich raus, außer es ist her.

    Ich möchte eine eigentlich simple kleine Anwendung realisieren, um Benutzer, Gruppen und Berechtigungen zu verwalten und in eine einzelen Datei – keine Datenbank (da Kunde Probleme mit Treibern fürchtet) – speichern.

    jo, geht mit <fstream> ja ganz angenehm.

    Aus meinen Erfahrungen mit Datenbanken stelle ich mir das Datenmodell in Form von 5 Tabellen vor: 3 Datentabellen (Benutzer, Gruppen, Berechtigungen), 2 Zuordnungstabellen (ZO_Gruppe_Benutzer, ZO_Gruppe_Berechtigung)

    hier darf man jetzt nachdenen, was man mit dem progr machen will. statt der zuordnungstabellem könnte man in c++ auch zeiger nehmen.
    für die speicherbarkeit auch indizes in eine andere tabelle (oh, primärschlüssel also). und die zeiger/indizes können durchaus als vector<bla> da sein. also hin-und-her-zeiger. in Benutzer ein zeiger auf seine Gruppe und in Grupe ein vector<Benutzer*> auf alle benutzer in dieser gruppe (in der annahme, daß jeder benutzer zu genau einer gruppe gehört). oder in beiden richtungen vector<zeiger>, was eine m-zu-n-verknüpfung dann wohl ist. das programmiertechnische handlen mit sowas geht an sich leicht von der hand. und speichern/laden auch.

    - Wie verwalte ich die einzelnen Tabellen: Array, Vector, Liste, struct, eigene Klasse?

    darüber könnte ich 24h am stück referieren, ohne daß es (mir) langweilig wird.

    - Gibt es bereits existierende Klassen, Objekte, die für Verwaltung und Speicherung ein gutes Handling bieten.

    naja, std::map ist dein freund und nen container drumgebaut, der im ctor von ner datei lädt und im dtor abspeichert, und schon haste ein persitenzgefühl wie in einer tollen datenbank. (ja, man darf in dtoren nix machen, was exceptions schmeißen kann, aber wie auf kaputte platten beim speichern reagieren? aber es fühlt sich echt toll an, da spreche ich aus erfahrung, wenn's auch nur marvin war. die daten "sind einfach immer da".)

    oder soch ne oo datenbank im netz. post++ heißt eine glaub ich. ganz in c++ gebaut also ohne treiber. aber der einarbeitungsaufwand ist vrl größer, als wenn du es selber machst.

    gehe ich recht in der annahme, daß der datenbestand nicht ein paar hunder kilobytes überschreien wird?



  • Wau,

    so viel Antwort, nach so etwas habe ich gesucht!

    Bin also topic, arbeite mit dem C++Builder.

    - Was ist eine gute Strategie, um … zu erreichen?

    keine allgemeine antwort möglich. hängt eigentlich davon ab, was du schon kannst. manche leute müssen vorher struktogramme malen und manche leute können es sogar ohne besser.

    - Wo werden diese Konzepte/ Strategien im Netz diskutiert?

    ka. aus sowas halte ich mich raus, außer es ist her.

    Den letzten Satz verstehe ich nicht.

    Ich möchte eine eigentlich simple kleine Anwendung realisieren, um Benutzer, Gruppen und Berechtigungen zu verwalten und in eine einzelen Datei – keine Datenbank (da Kunde Probleme mit Treibern fürchtet) – speichern.

    jo, geht mit <fstream> ja ganz angenehm.

    Zu fstream in diesem Zusammenhang bitte noch eins, zwei Sätze!

    statt der zuordnungstabellem könnte man in c++ auch zeiger nehmen.

    ... und die halte ich z.B. in einem Vector?

    für die speicherbarkeit auch indizes in eine andere tabelle

    Aber auch die Indizes oder Zeiger muss ich doch irgendwie speichern, um die Zuordnung festhalten zu können.

    das programmiertechnische handlen mit sowas geht an sich leicht von der hand. und speichern/laden auch.

    Einige Stichworte würde ich gern noch hören, um mir das "leicht von der Hand" noch genauer vorstellen zu können.

    - Wie verwalte ich die einzelnen Tabellen: Array, Vector, Liste, struct, eigene Klasse?

    darüber könnte ich 24h am stück referieren, ohne daß es (mir) langweilig wird.

    Auf geht's, ich habe gute Zuhörerqualitäten.

    naja, std::map ist dein freund und nen container drumgebaut, der im ctor von ner datei lädt und im dtor abspeichert

    Und mit dieser map würde ich dann z.B. meine Benutzer als struct (ID, Name, Vorname etc.) verwalten?

    ... ganz in c++ gebaut also ohne treiber. aber der einarbeitungsaufwand ist vrl größer, als wenn du es selber machst.

    Was meint "vrl"?

    gehe ich recht in der annahme, daß der datenbestand nicht ein paar
    hunder kilobytes überschreien wird?

    Sehr wahrscheinlich nicht. Aber wenn doch, was dann?

    Danke schon mal, für die vielen Anregungen.
    Leo



  • - Wo werden diese Konzepte/ Strategien im Netz diskutiert?

    ka. aus sowas halte ich mich raus, außer es ist her.

    Den letzten Satz verstehe ich nicht.

    Er diekutiert Konzepte/Strategien nicht im netzt, außer hier, also in diesem Forum.

    jo, geht mit <fstream> ja ganz angenehm.

    Zu fstream in diesem Zusammenhang bitte noch eins, zwei Sätze!

    <fstream> ist ein Header.
    Dort findest du std::ifstream und std::ofstream, mit denen du Ein- und Ausgabeströme verwalten kannst.

    für die speicherbarkeit auch indizes in eine andere tabelle

    Aber auch die Indizes oder Zeiger muss ich doch irgendwie speichern, um die Zuordnung festhalten zu können.

    Sagt er doch: in einer anderen Tabelle.

    naja, std::map ist dein freund und nen container drumgebaut, der im ctor von ner datei lädt und im dtor abspeichert

    Und mit dieser map würde ich dann z.B. meine Benutzer als struct (ID, Name, Vorname etc.) verwalten?

    Eine Map mappt immer eine Sache auf eine andere. Du hast immer ein Schlüsse-Wert-Paar.

    map<string, int> foo;
    
    foo["Blabla"] = 77; // "Blabla" ist der Schlüssel, 77 der Wert
    

    ... ganz in c++ gebaut also ohne treiber. aber der einarbeitungsaufwand ist vrl größer, als wenn du es selber machst.

    Was meint "vrl"?

    viel

    gehe ich recht in der annahme, daß der datenbestand nicht ein paar
    hunder kilobytes überschreien wird?

    Sehr wahrscheinlich nicht. Aber wenn doch, was dann?

    Dann nimmste ne ordentliche Datenbank.


Anmelden zum Antworten