kein speichern doppelter Datensätze

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Yuri_O
Beiträge: 1
Registriert: So, 14.11.2010 23:00

kein speichern doppelter Datensätze

Beitrag von Yuri_O »

Hi,

ich habe 3 Tabellen in einer Datenbank, die von 3 Personen verwaltet werden.
Kann ich über einen Makro oder sonstiges erreichen, dass beim speichern eines Datensatzes keine doppelten Datensätze vorkommen?
Sprich, beim speichern eines Datensatzes(Spalte 1 : Firma, Primärschlüssel) von Tabelle 1 kommt ein Hinweis :"Firma xy existiert schon in Tabelle2".
Oder gibt es ein Makro, das mich darauf hinweist, ob Datensätze doppelt sind bzw. ist es schwer zu programmieren?
Der Vergleich findet immer zwischen Spalter 1 und 2 in Tab.1 und Spalte 1 und 2 in Tab.2 bzw Tab.3 statt (2 Kriterien).

Habe wenig Ahnung von Datenbanken, und die Ergebnisse aus der Suchfunktion haben bei mir nicht funktioniert.
Ich danke schonmal im voraus.

Yuri
Benutzeravatar
herz4
****
Beiträge: 145
Registriert: Mi, 29.09.2010 13:41

Re: kein speichern doppelter Datensätze

Beitrag von herz4 »

Hallo,
unter welchen Bedingungen - die dann abgefragt werden müssten! - sind denn für Dich die Datensätze gleich?
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
Benutzeravatar
herz4
****
Beiträge: 145
Registriert: Mi, 29.09.2010 13:41

Re: kein speichern doppelter Datensätze

Beitrag von herz4 »

Da empfiehlt sich ein UNIQUE CONSTRAINT sowohl für Name als auch Webadresse, zusätzlich deren Indizierung (Index). Google mal unter diesen Begriffen!
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
AndreasJBittner
*****
Beiträge: 473
Registriert: Fr, 09.10.2009 16:44
Wohnort: Bielefeld
Kontaktdaten:

Re: kein speichern doppelter Datensätze

Beitrag von AndreasJBittner »

Hallo,

das kann man einfacher haben, wenn man aus den Spalten, deren Inhalte nicht doppelt vorkommen dürfen, PrimaryKeys macht, dann gibt es einen Fehler von dem DBS, wenn man versucht etwas einzutragen, was schon drin ist.

Grüße
Andreas
LO 4.3
AMD Athlon 64 3700+, 2.21 GHz, 4 GB RAM, Win XP SP3
iMac 2 GHz, 16 GB RAM/MacBookPro, 8 GB RAM, Mac OS X 10.9.5
Intel Core2 Quad CPU Q6600 @ 2,4 GHz, 4 GB RAM, Suse 13.2

MySQL 5.1: Pentium III, 666 MHz, 512 MB, Suse 12.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: kein speichern doppelter Datensätze

Beitrag von DPunch »

Aloha
Gast hat geschrieben:des mit dem Unique constraint und primary key bezieht sich ja auf eine Tabelle, oder?!
(...)
oder muss ich da noch was verknüpfen?mit beziehungen hab ich da irgendwie nichts brauchbares hinbekommen.
UNIQUE-Constraints (bzw azcg PK-Constraints) lassen sich nicht über mehrere Tabellen spannen, das wirst Du mit Hausmitteln also nicht hinbekommen - entweder Du führst die 3 Tabellen zusammen (was das sinnvollste wäre), oder Du führst eine Master-Tabelle für die Shops en.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: kein speichern doppelter Datensätze

Beitrag von DPunch »

Gast hat geschrieben:Wie mach ich eine Mastertabelle?Eine Tabelle mit firmen und von dort aus beziehungen auf die jeweiligen Tabellen?
Richtig.
Gast hat geschrieben:Zusammenfügen würde ein Durcheinander geben.
Inwiefern Durcheinander? Von aussen betrachtet halte ich das parallele Führen von drei Tabellen mit praktisch denselben Inhalten langfristig für das größere "Durcheinander",
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: kein speichern doppelter Datensätze

Beitrag von TuoDesperado »

Gast hat geschrieben:Naja,

wir ordnen die Shops jeweils den 3 Personen zu. Jede Person kümmert sich dann nur um "seine" Shops.
(Es soll keine Person den Shop des anderen kontaktieren bzw. 2 Personen beim selben anrufen, deswegen das ganze...)
Würde ich eine große Datenbank anlegen und jeder auf die große Datenbank zugreifen, bräuchte man länger um seinem Shop zu finden & müsste immer schauen bei welchem Shop sein name dabei steht etc...
zumindest ist es so mit meinen jetzigen kenntnissen. bin bei Datenbanken einfach nicht sehr bewandert um viele möglichkeiten auszuschöpfen.

aber danke für die raschen antworten.
Gruß,

Yuri
Also ich würde da wirklich nur eine Tabelle anlegen mit Name, Shop, Webadresse und ganz wichtig, Betreuer (das ist dann einer von deinen 3 Mitarbeiter).

Dann kannst das so anlegen, das nur der Betreuer 1 die Daten bekommt die er auch angelegt hat. Du siehst alle Daten und kannst somit auch doppelte Einträge gleich finden lassen.
Beispiel, Betreuer 2 gibt einen Webshop ein, der schon drin steht, von Betreuer 1.
Somit kannst du deine Datenbank ins Netzwerk einbinden und jedem Mitarbeiter einen Account einrichten und dann siehst du genau, welcher mitarbeiter was angelegt hat, wenn du willst sogar mit Datum und Uhrzeit. *lach* Kontrolle ist alles. (oh jee, ich rede schon wie mein Chef)
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
Antworten