| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 01.06.2011
Beiträge: 392
PHP-Kenntnisse: Anfänger ![]() | Für so etwas würde ich über eine Kalendertabelle nachdenken, die für jede halbe Stunde einen Datensatz hat. Bei halben Stunden sind das knapp 18.000 Datensätze pro Jahr. Das könnte Vorteile bringen. Die Sache läßt sich leicht abfragen und gibt den Zeitraster vor, ohne daß man noch auf- oder abrunden müßte. Außerdem lassen sich Lücken leicht feststellen ohne jeweils aufwendige Rechnungen auszuführen. Nachteil: das Verfahren ist nicht gut zur echten Zeiterfassung geeignet, ich denke da z. B. an Überstunden. |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse: Anfänger ![]() | @Delirius Es ist geklappt die gesamte Software später anzupassen. Sprich der Admin darf entscheiden auf welcher Taktung die Software läuft (15/30/60 min). Bei der Methode von mir habe ich mir gedacht diese Taktungen durch Identifier in der DB zu speicher (z.B. die Spalte "Taktung" => "1" für 15 Minuten) oder alternativ kann die Software automatisch herausfinden welche Taktung herrscht indem sie die Character des Strings zählt (48 = 30min, 96 = 15min, 24 = 60min). @nikosch & dsmcg Bei der Methode habe ich mehrere Nachteile entdeckt gehabt: a.) Man hat bei einem halbstündlichen Takt bis zu 48 Datensätze für eine Person. Kurz: Es entsteht die bis zu 48-fache Datenmenge. Bei einem String hat ebend nur max. einen Datensatz. ---------------------------------------------------------------- !!! Dieser Punkt gilt nicht, jedoch wurde er stehen gelassen um den Aufbau besser zu erläuter !!! b.) Der Admin legt fest in welcher Taktung du deine eigene Verfügbarkeit einteilen kannst. Diese wird dir dann grafisch angezeigt. Stell dir folgendes vor: [] [] [] [] [] [] [] [] [] | [Checkbox] Jedes Rechteck ist eine halbe Stunde. Wenn du auf eines klickst, updatet sich die DB im Hintergrund automatisch. Nun müsste, wenn es kein String ist, die ID des Eintrages (Also eines Rechteckes) als HTML-Element ID mit ausgegeben werden. Ansonsten kann der Eintrag in der DB nicht gefunden werden. Soweit klar ? ![]() (Bild gepostet siehe Update1) Ok dann der Punk worauf ich eigentlich hinaus möchte: Wenn Hr. Gutenberg jetzt seine Verfügbarkeiten aufruft müssen diese aus der DB geladen werden. Sagen wir die Query ist "[...] Where day = Monday". Jetzt bekommen wir 2 Datensätze, z.B. 15:30 -16:00 und 16:00 - 16:30. Jetzt müsste ich, damit es angezeigt wird, in einer foreach() Schleife per if() prüfen, ob die geholte Zeit mit dem Rechteck (siehe Bild) passt. Das ist jedoch bei dem String nicht anders, dort wird von mir auch jede Stelle manuell auf den Status überprüft. [...] !!! Bei diesem Punkt habe ich mich verzettelt !!! ---------------------------------------------------------------- Es bleibt nun Argument 1 mit der bis zu 96 fachen Datenmenge bei einer Taktung von 15 Minuten. Das Argument "Es kann auch 15-16:30 angegeben werden, dann sind aus 3 Datensätze einer geworden kann nicht gehalten werden, da mir keine Methode bekannt ist diese Zeitspanne (außer mit unendlich vielen if() Anweisungen) darauf zu überprüfen ob sich eine halbe Stunde (die grafisch am Ende dargestellt wird) darin befindet oder nicht. Außerdem ist es von meiner Logik her auch etwas aufwändiger mehrere Datensätze zu ziehen, diese einzeln im Array durchzugehen, ob die halbe Stunde sich darin befindet oder nicht, anstatt einen gesamten String zu haben und diesen einmal abzuarbeiten von vorne nach hinten. (Ich hoffe meine Logik dahinter ist klar )Weshalb würdet ihr diese Technik der anderen vorziehen ? ___ Update1:// Ich hab die graphische Oberfläche mal angehangen die ich programmiert habe. Geändert von dreamcatcher (11.08.2011 um 22:17 Uhr). |
| | |
| | |||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | ||
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Navigation mit Untermenüs in mehrerer schichten | PHP Tipps 2004 | 7 | 29.07.2004 11:38 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| dantenbankschichten, profi php datenbank software, php kalender halbstündlich, software design schichten, datenbanksoftware gutenberg, datenbanksoftware charakter, rolle der datenbanksysteme im software schichtenmodell, 48-stellige zeichenkette |