php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 22.06.2011, 16:10  
Neuer Benutzer
 
Registriert seit: 13.06.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
K00S befindet sich auf einem aufstrebenden Ast
Standard Kalenderdaten spechern

Hallo,
ich hoffe, ich bin hier im richtigen Board für mein Problem gelandet.
Also konkret gesagt: Ich möchte verschiedene Termine in einem Kalender in einer Datenbank abspeichern.
Es gibt aber jetzt verschiedene Gruppen. Mal ein Beispiel:
Firma kann also Termine eintragen, die für alle Angestellten gelten.
Abteilungsleiter kann Termine für alle Arbeiter eintragen, die in seiner Abteilung sind.
Jeder Angestellte kann in den Kalender persönliche Termine eintragen.
Man könnte das alles in eine Tabelle packen, indem man es einfach mit der ID des Angestellten versieht. Das führt aber dazu, dass für für Firmentermine so viele Datensätze angelegt werden, wie es Angestellte gibt. Man speichert dann also einen Termin öfter, als man ihn eigentlich braucht.
Wie kann man die Daten sonst noch sinnvoll strukturieren, oder sollte man diese besser aufteilen?
Schöne Grüße,
K00S
K00S ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.06.2011, 16:20  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

http://de.wikipedia.org/wiki/Normali...28Datenbank%29

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 23.06.2011, 09:58  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von K00S Beitrag anzeigen
Wie kann man die Daten sonst noch sinnvoll strukturieren, oder sollte man diese besser aufteilen?
Schöne Grüße,
K00S
Gruppieren heißt Gruppen anlegen:

Entweder bildest Du die komplette Firmenstruktur ab, indem Du in einer Tabelle die Abteilungen abbildest, und diese den Mitarbeitern zuweist,

oder Du erlaubst individuelle Gruppen (was auch Abteilungen sein können), aber auch z.B. alle Abteilungsleiter, das kann bei der Verwaltung der Termine hilfreich sein.

Um jetzt die Teilnehmer den Terminen zuzuordnen, brauchst Du eine dritte Tabelle:

1.Tabelle
termine(ID,beschreibung,wo,wann)

2.Tabelle
mitarbeiter(ID,name)

3.Tabelle
teilnehmer(terminID,mitarbeiterID)

In die dritte Tabelle mußt Du für jeden Teilnehmer eines Treffens einen Eintrag machen, allerdings nicht für jeden Datensatz die Details der Termine speichern, die sind in der ersten Tabelle.

Der Vorteil:
Du kannst aus der dritten Tabelle sehr leicht alle Teilnehmer eines Termins ermitteln,genauso wie du alle Termine eines Mitarbeiters findest.
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Alt 23.06.2011, 12:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du redest selbst von Gruppen und vergisst sie dann doch?
Um den Schreibaufwand für die DB zu minimieren würde ich einfach Gruppen/Rollen erstellen und diese den Terminen zuordnen, so hat man statt 10 Inserts bei 10 Teilnehmern nur einen.
Damit lassen sich Einzeltermine genauso abdecken wie Gesamtmeetings, einziger Haken wäre vielleicht, dass man eine weitere Tabelle benötigen könnte, um Absagen zu verwalten.
G.Schuster ist offline   Mit Zitat antworten
Alt 23.06.2011, 12:56  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von G.Schuster Beitrag anzeigen
Du redest selbst von Gruppen und vergisst sie dann doch?
Um den Schreibaufwand für die DB zu minimieren würde ich einfach Gruppen/Rollen erstellen und diese den Terminen zuordnen, so hat man statt 10 Inserts bei 10 Teilnehmern nur einen.
Damit lassen sich Einzeltermine genauso abdecken wie Gesamtmeetings, einziger Haken wäre vielleicht, dass man eine weitere Tabelle benötigen könnte, um Absagen zu verwalten.
Aus meiner Erfahrung (Softwarehaus mit ca.50 Mitarbeitern) bestehen die meisten Meetings aus 2,3,4 Mitarbeitern.

Geburtstagsfeiern sind eh für alle

Wenn sich regelmäßige Gesprächsrunden mit den selben Teilnehmern entwickeln, kann man da gerne eine Gruppe draus machen, aber für jedes Treffen eine Gruppe anzulegen, fände ich zu aufwändig.

Also ich würde beim Anlegen des Termines auf die Gruppen zurückgreifen, aber wie Du schon sagst, alleine für den Status (gelesen, Absage, Zusage, Vielleicht) macht es wirklich Sinn, jeden Teilnehmer in einem Datensatz zu speichern.
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Alt 24.06.2011, 02:12  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Gruppen werden quasi-notwendig wenn du oft oder immer einen gleichen Stamm an Objekten zusammenfassend zuweisen willst.

Ein einfaches Beispiel ist dabei die Lohn-"Gruppe". Inder immer gleiche Bedingungen Gruppiert werden um auf eine nicht-feststehende Menge angewendet zu werden.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 24.06.2011, 07:53  
Benutzer
 
Registriert seit: 25.01.2011
Beiträge: 59
PHP-Kenntnisse:
Fortgeschritten
Renner befindet sich auf einem aufstrebenden Ast
Standard

Ich sehe es auch so, wie eisenhans und - falls ich ihn richtig verstanden habe, auch - tr0y:

Das gruppierende Moment an der Sache ist nicht die Teilnahme an einem Termin, sondern der Akt der Zuweisung. Den Sinn der Gruppe im Zusammenhang mit Terminen sehe ich darin, dass für denjenigen, der den Termin anlegt, die Termineinladung so einfach wie möglich gestaltet.

Aus diesem Grund, würde ich den Gruppenaspekt von der Terminplanung an sich trennen und nur die Termineinladung auf Gruppenebene ziehen.

Bsp:
Es gibt die Funktion "Einladung zu einem Termin", welche sich auf einzelne Mitarbeiter und Gruppen anwenden lässt.

a) Man hat einen Mitarbeiter vorliegen und weist ihn dem Termin zu (terminID, mitarbeiterID)

b) Man hat eine Gruppe vorliegen, holt zunächst alle Mitarbeiter dieser Gruppe aus der Datenbank, und danach zu a)

Damit können sowohl einzelne Mitarbeiter als auch unterschiedliche Gruppen zu einem Termin eingeladen werden.
Renner ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kalenderdaten in Datenbank speichern Squiddy PHP Tipps 2010 7 06.05.2010 13:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax php kalender daten den tagen zuweisen, eisenhans wehnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum