Einzelnen Beitrag anzeigen

manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Import aus Access plus ID > GUID

  Alt 6. Mär 2006, 23:21
Zitat von marabu:
Hallo Manfred,

Zitat von manfred_h:
Die Theorie ist mir eigentlich klar, nur die umsetzung hapert noch.
ist dir bewusst, dass ein GUID eine segmentierte 128-bit Zahl ist, die als Zeichenkette der Länge 38 repräsentiert wird?

Code:
'{00000002-0000-0000-C000-000000000046}'
Solange dein RDBMS keine 128-bit Zahlen speichern kann, musst du sehr genau überlegen, ob du auf die performanten 32-bit Schlüssel verzichten kannst. Da ich dein DB-Schema nicht kenne, kann ich schlecht beurteilen, ob du mit den GUID-Schlüsseln eine gute Entscheidung triffst oder nicht. Meine Erfahrung sagt mir aber - eher nicht.
Hallo Marabu
danke schon mal für die Antwort.
Als DB setzte ich Firebird in der Version 1.5 mit den FibPlus-Komponenten ein.
In den Infos zu FibPlus wird speziell erwähnt das diese auch GUID's unterstüzen und da dieselben nur für
Firebird sind ( meines Wissens ) sollte das doch gehen.

Die Frage der Geschwindigkeit habe ich hier im Forum schon mal gestellt und diese Antort bekommen:
GUID in Firebird und die Geschwindikeit

Die Entscheidung mit den GUID's habe ich getroffen weil die Anwendung von mehreren ( >100 ) Personen
genutzt wird, die die Daten über das Internet abgleichen müssen ( miteinander ).
Die Anzahl der Benuzter darf nich beschränkt sein. Aber jeder einzelene Benutzer hat nicht den Zugriff auf alle
Daten, nur für die aus seiner Region. (Daher is die Anzahl der Datensätze normalerweise niicht so hoch )
Aus etlichen Foren / Dokus bin ich dann zum schluss gekommen das das mit einer GUID möglich währe.
( Bin aber immer gerne Lernbereit )

Manfred
( PS: Die längere Antwortzeit soll wirklich kein Zeichen für Desinteresse sein )

mein DB schema sieht wie folgt aus ( ein Auszug )
SQL-Code:
/******************************************************************************/
/****                          DOMAINS START                               ****/
/******************************************************************************/


CREATE DOMAIN "ID" AS CHAR(38) CHARACTER SET ISO8859_1 NOT NULL;
CREATE DOMAIN "PLZ" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "STATUS" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T10" AS VARCHAR(10) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T20" AS VARCHAR(20) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T30" AS VARCHAR(30) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T50" AS VARCHAR(50) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T70" AS VARCHAR(50) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T130" AS VARCHAR(130) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "T255" AS VARCHAR(255) CHARACTER SET UNICODE_FSS;
CREATE DOMAIN "DATE" AS DATE;
CREATE DOMAIN "TIME_S" AS TIMESTAMP;
CREATE DOMAIN "I_O" AS DECIMAL(9, 0);
CREATE DOMAIN "TEXT" AS BLOB SUB_TYPE 2 SEGMENT SIZE 4096;

/******************************************************************************/
/****                        ALTERSHEIM Start                              ****/
/****                       NURSING HOME Start                             ****/
/******************************************************************************/
CREATE TABLE NURSING_H
(
  "ID"     "ID",
  "C_NR"  "T30" NOT NULL,
  "U_NR"  "T30" NOT NULL,
  "NAME"  "T130",
  "STR"     "T130",
  "PLZ"     "PLZ",
  "CITY"     "T50",
  "TEL"     "T20",
  "FAX"     "T20",
  "EMAIL"  "T50",
  "HOMEPAGE"  "T130",
  "ANZ_PL"  "T10",
  "WORKER"  INTEGER,
  "MT"     SMALLINT,
  "ACCEPTANCE"  INTEGER,
  "STATUS"  INTEGER,
  "MEMO"  "TEXT",
  "NC"     INTEGER,
  "CS"     INTEGER,
  "L_UPDATE"  "TIME_S",
  "STAT_UPDATE"  INTEGER,
  "STAT_DEL"  INTEGER
);

/******************************************************************************/
/****                          Primary Keys                                ****/
/******************************************************************************/

ALTER TABLE NURSING_H ADD PRIMARY KEY (ID);
ALTER TABLE NURSING_H ADD FOREIGN KEY ("C_NR") REFERENCES CAMPS ("C_NR") ON UPDATE CASCADE;
/**ALTER TABLE NURSING_H ADD FOREIGN KEY ("U_NR") REFERENCES CAMPS ("U_NR") ON UPDATE CASCADE;**/
  Mit Zitat antworten Zitat