Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Grundlagen";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Hallo alle! Ich mache ein Tagebuch. Wo war die Aufgabe? Finden Sie ähnliche Zweige


@andrew   (2001-12-04 11:38) [0]

... muss die Eindeutigkeit des eingegebenen Datums überprüft werden. Zur gleichen Zeit hatte nicht zwei Ereignisse. Sagen Sie mir nicht, wie ich diese Prüfung durch den Tabellenkonstruktor oder die Abfrage vor der Zeile "Einfügen in ..." überprüfen soll? Danke!



Val   (2001-12-04 13:11) [1]

Es ist keine Überprüfung erforderlich, sondern ein eindeutiger Index, der dieses Datumsfeld enthält



@andrew   (2001-12-04 13:58) [2]

Und das ist, wie: "Welche wird das Datumsfeld enthalten"? Bedeutet dies, dass das Feld "Datum" eindeutig ist? Wenn es heißt, dann ist es nicht ganz gut, weil in der Tat interessiert an Zeitintervalle Ereignisse überlappten nicht. Zum Beispiel Eine Veranstaltung von 5 bis 8 am Morgen. Das andere ist von 6 zu 7. Wenn Sie die Eindeutigkeit des Index überprüfen, können Sie mit SQL einen Datensatz erstellen, dies sollte jedoch nicht der Fall sein.



@andrew   (2001-12-04 14:05) [3]

Tatsächlich können Sie verschiedene Lösungen für mein Problem finden. Das Elementarste, das sich in meinem Kopf dreht, nämlich: erst alle Werte zurückgeben, dann sortieren, schauen ... usw. - sehr lang und bremsen. Vielleicht ist gerade jemand auf meine Frage gestoßen und hat eine vorgefertigte Lösung für diese Frage gefunden: schnell und einfach und doch vorzugsweise nicht auf Softwareebene, sondern auf SQL- oder SQL-Abfrageebene, weil Bei der Variante, das Problem auf Software-Ebene zu lösen, wenn eine große Anzahl von Benutzern sofort arbeitet, kann die Zeitverzögerung "Auswahl * ...; Prüfung .....; wenn alles in Ordnung ist, etwas einfügen ...." fatale Folgen haben.

Nochmals vielen Dank im Voraus!



Mick   (2001-12-04 14:07) [4]

Normalerweise werden normale Journale nacheinander geschrieben. Das Datum wird nicht vom Client, sondern vom Server eingegeben. Wenn ein Prozess in 5 gestartet und in 8 beendet wurde, enthält das Protokoll den 1-Startdatensatz (5 am), einen Enddatensatz (8 am) und eine Wolke von Datensätzen, die Ihnen mitteilen, was zu diesem Zeitpunkt passiert ist.



Nest   (2001-12-04 14:14) [5]

Ja, gestern hatte ich auch eine solche Frage.
Aber ich habe seine Entscheidung bisher verschoben - es gibt wichtigere Dinge.
Im Allgemeinen denke ich, dass Ihre Periode durch 2-Parameter charakterisiert werden sollte;
date_start_start und date_time_end.
Wenn es also zu einem bestimmten Zeitpunkt nur ein vollständiges Ereignis geben kann, muss bei der Eingabe Folgendes überprüft werden:
[1.date_time_start <date_time_end]
2: Es gibt keinen Datensatz, für den das Enddatum_Zeit leer oder größer als das eingegebene Startdatum_Zeit ist.

Wahrscheinlich sollten diese Gedanken in Erinnerung gerufen werden - es gab keine Zeit. Im Moment nur eine vage Idee.
Reiten?



@andrew   (2001-12-04 14:17) [6]

> Mick
Nicht wirklich.
Dies ist keine Zeitschrift im Computer-Sinne, sondern eine Zeitschrift als Organisator, ein Tagebuch, in das Sie einige Pläne für die Zukunft eintragen können.



@andrew   (2001-12-04 14:24) [7]

> Nest
Nun ja, im Prinzip ist die Idee klar. Dies ist jedoch eine Softwarelösung. Dh grob gesagt, bevor ich etwas aufschreiben möchte, mache ich:
1. Geben Sie alle Datensätze zurück und sortieren Sie sie nach Datum und Uhrzeit.
2. Werde die letzte Zeile (Query1.Last)
3. Wenn die Startzeit dessen, was ich einfügen möchte,> = die Zeit des Endes der letzten Aufnahme ist, dann können Sie sie einfügen.
Ist es auch möglich, nur nicht per Software, sondern auf Anfrage?

Ich habe nur Angst, dass Sie es vermasseln können, wenn mehrere Leute gleichzeitig arbeiten.



Nest   (2001-12-04 14:36) [8]

Und was fährt so nicht?
1.Query1: Wählen Sie max (DVK)
2.If query1.fields [0] .asdatetime> DVN_Enited, dann Abbruch

Um eine Abfrage zu erstellen, zu prüfen und einzufügen, ist es meiner Meinung nach erforderlich, eine schöne Anzahl von% @ tsya zu haben. Ein Paar - einfach.



Nest   (2001-12-04 14:38) [9]

Vielleicht können Sie - einfach sitzen und über elementare Logik nachdenken und wie man sie in der WHERE-Abfrage darstellt.
Ich gab die Idee - dann versuche weiter zu denken. Ich habe einfach keine Echtzeit.



Mick   (2001-12-04 14:39) [10]

Sie können dem Pfad zur Denormalisierung der Protokolltabelle folgen.
Struktur:
1. Schlüsselfeld (beliebiger Primärschlüssel künstlich)
2.Date
3 Stundenfelder (nach Anzahl Stunden pro Tag)

Next:
Der Client prüft die Kontinuität des eingegebenen Intervalls (einfach)
Der Trigger in der Tabelle prüft, ob NOT NULL-Werte in den gleichnamigen Feldern der Datensätze zum gleichen Datum enthalten sind.
Wenn ja, haben sie die Überschneidung von Ereignissen bemerkt, wenn nicht, ist alles in Ordnung.



Sam   (2001-12-04 19:27) [11]

Was ist mit Auslösern?



kaif   (2001-12-04 20:17) [12]

Vor ein paar Jahren löste ich genau diese Aufgabe, um einen Termin bei einem Arzt zu vereinbaren. Tat bei InterBase. Der Algorithmus ist völlig nicht trivial. Damit das schnell geht, brauchen wir natürlich Indizes. Es war notwendig, Lücken zu erstellen, als separate Aufzeichnungen wurden die gespeicherten Prozeduren zum "Brechen" von Lücken und "Kleben" benötigt. Zunächst entstehen „Freizeitlücken“, dann werden sie wie schon seit einiger Zeit aufgelöst. Dementsprechend nimmt ihre Anzahl allmählich zu. Bestimmte Fälle sind an den eindeutigen Ersatzindex dieser Intervalle gebunden. Arbeitete schnell und konsequent mit dem gleichzeitigen Zugriff einer Reihe von Benutzern. Ich habe dann viel nachgedacht und verschiedene Optionen ausprobiert. Ohne einzelne Lücken in Objekte zu verwandeln, die erstellt, gelöscht und verwendet werden, fand ich keine andere gute Lösung.



Seiten: 1 ganze Branche

Forum: "Grundlagen";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.6 MB
Zeit: 0.038 c
6-22293
Dark_Dan
2001-10-02 18:09
2002.01.08
Steckdosen müssen sterben !!!!!!!


3-21914
Achse
2001-12-03 18:05
2002.01.08
Frage zu MIDAS.


3-21993
&#1050;&#1085;&#1086;&#1087;&#1082;&#1072;
2001-12-07 09:23
2002.01.08
Suche in der Datenbank (sehr dringend !!!)


1-22179
ikar
2001-12-21 09:10
2002.01.08
Wie man durch Wurzelknoten in TTreeView iteriert?


1-22235
DDDeN
2001-12-17 06:47
2002.01.08
Bildschirmschoner





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch