<% Include("/hsphere/local/home/terraint/common.phps");%> Jakarta Slide -- Java WebDAV -- - JDBC Store Howto
The Jakarta Project The Jakarta Slide Project

Jakarta Slide

リソース

ユーザガイド

管理者ガイド

HOW-TO

プログラミング

Slide API

リファレンス

日本語訳 (Translations)

オリジナル

初期化

Storeの最初のスタートアップでは、Store は、自動的にデータベースに適切なテーブルを作成しようと試みます。 データベースでサポートされない型がある場合に、そのテーブル作成は失敗します。 其の場合、storeを開始する前に、テーブルを作成しなければなりません。

この文書では、様々なデータベースにてテーブルの作成に使われる多くのSQLスクリプトをご紹介します。 これに関する投稿も大いに歓迎いたします。

注意: JDBC Store の目標は、出来る限り互換性を保つ事にあります。 特殊な高パフォーマンスのstore 、例えばいくつかのベンダのXAドライバ(訳注:分散トランザクション用のドライバです)のあたりをベースにしたstoreなどは、やがては開発されるでしょう。

Tables

このセクションでは、JDBC store で使われるデータベーススキーマをご紹介いたします。 ここで示されて型は、各フィールドに求められているJava型のことを指します。

Objects
  • uri: String
  • classname: String
Children
  • uri: String
  • childuri: String
Links
  • link: String
  • linkto: String
Permissions
  • object: String
  • revisionnumber: String
  • subject: String
  • action: String
  • inheritable: int
  • negative: int
Locks
  • id: String
  • object: String
  • subject: String
  • type: String
  • expirationdate: String
  • inheritable: int
  • xexclusive: int
Revisions
  • uri: String
  • isversioned: int
  • initialrevision: String
Workingrevision
  • uri: String
  • baserevision: String
  • xnumber: String
 
Latestrevisions
  • uri: String
  • branchname: String
  • xnumber: String
Branches
  • uri: String
  • xnumber: String
  • childnumber: String
Revision
  • uri: String
  • xnumber: String
  • branchname: String
Label
  • uri: String
  • xnumber: String
  • label: String
Property
  • uri: String
  • xnumber: String
  • name: String
  • value: String
  • namespace: String
  • type: String
  • protected: int
Revisioncontent
  • uri: String
  • xnumber: String
  • content: byte[]
データベース作成スクリプト

Hypersonic SQL の初期化スクリプトは、デフォルトのJDBC storeのスタートアップで動くものの一つです。

サポートされるデータベース:

Hypersonic SQL


create table objects(uri varchar(65536) primary key, classname varchar(4096);



create table children(uri varchar(65536), childuri varchar(65536));



create table links(link varchar(65536), linkto varchar(65536));



create table permissions(object varchar(65536), revisionnumber varchar(20), 

  subject varchar(65536), action varchar(65536), inheritable int, 

  negative int);



create table locks(id varchar(65536), object varchar(4096), 

  subject varchar(4096), type varchar(4096), 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri varchar(65536) primary key, 

  isversioned int, initialrevision varchar(10));



create table workingrevision(uri varchar(65536), 

  baserevision varchar(20), xnumber varchar(20));



create table latestrevisions(uri varchar(65536), 

  branchname varchar(4096), xnumber varchar(20));



create table branches(uri varchar(65536), xnumber varchar(20), 

  childnumber varchar(20));



create table revision(uri varchar(65536), xnumber varchar(20), 

  branchname varchar(4096));



create table label(uri varchar(65536), xnumber varchar(20), 

  label varchar(4096));



create table property(uri varchar(65536), xnumber varchar(20), 

  name varchar(4096), value varchar(65536), namespace varchar(4096), 

  type varchar(100), protected int);



create table revisioncontent(uri varchar(65536), xnumber varchar(20), 

  content longvarbinary);

mySQL


create database myDB;



use myDB;



create table objects(uri blob not null, primary key uriIndex (uri(255)), 

  classname blob);



create table children(uri blob, childuri blob);



create table links(link blob, linkto blob);



create table permissions(object blob, revisionnumber varchar(20), 

  subject blob, action blob, inheritable int, negative int);



create table locks(id blob, object blob, subject blob, type blob, 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri blob not null, primary key uriIndex 

  (uri(255)), isversioned int, initialrevision varchar(10) );



create table workingrevision(uri blob, baserevision varchar(20), xnumber 

  varchar(20) );



create table latestrevisions(uri blob, branchname blob, xnumber 

  varchar(20) );



create table branches(uri blob, xnumber varchar(20), childnumber 

  varchar(20) );



create table revision(uri blob, xnumber varchar(20), branchname blob);



create table label(uri blob, xnumber varchar(20), label blob);



create table property(uri blob, xnumber varchar(20), name blob, value 

  blob, namespace blob, type varchar(100), protected int);



create table revisioncontent(uri blob, xnumber varchar(20), content blob);

PostgreSQL


create table objects(uri varchar(3200) primary key, classname varchar(4000));



create table children(uri varchar(4000), childuri varchar(4000));



create table links(link varchar(4000), linkto varchar(4000));



create table permissions(object varchar(4000), revisionnumber varchar(20), 

  subject varchar(4000), action varchar(4000), inheritable int, negative int);



create table locks(id varchar(4000), object varchar(4000), 

  subject varchar(4000), type varchar(4000), 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri varchar(3200) primary key, 

  isversioned int, initialrevision varchar(10));



create table workingrevision(uri varchar(4000), 

  baserevision varchar(20), xnumber varchar(20));



create table latestrevisions(uri varchar(4000), 

  branchname varchar(4000), xnumber varchar(20));



create table branches(uri varchar(4000), xnumber varchar(20), 

  childnumber varchar(20));



create table revision(uri varchar(4000), xnumber varchar(20), 

  branchname varchar(4000));



create table label(uri varchar(4000), xnumber varchar(20), 

  label varchar(4000));



create table property(uri varchar(4000), xnumber varchar(20), 

  name varchar(4000), value varchar(4000), namespace varchar(4000), 

  type varchar(100), protected int);



create table revisioncontent(uri varchar(4000), xnumber varchar(20), 

  content oid);



Oracle 8i


create table objects(uri varchar(3200) primary key, classname varchar(4000));



create table children(uri varchar(4000), childuri varchar(4000));



create table links(link varchar(4000), linkto varchar(4000));



create table permissions(object varchar(4000), revisionnumber varchar(20), 

  subject varchar(4000), action varchar(4000), inheritable int, negative int);



create table locks(id varchar(4000), object varchar(4000), 

  subject varchar(4000), type varchar(4000), 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri varchar(3200) primary key, 

  isversioned int, initialrevision varchar(10));



create table workingrevision(uri varchar(4000), 

  baserevision varchar(20), xnumber varchar(20));



create table latestrevisions(uri varchar(4000), 

  branchname varchar(4000), xnumber varchar(20));



create table branches(uri varchar(4000), xnumber varchar(20), 

  childnumber varchar(20));



create table revision(uri varchar(4000), xnumber varchar(20), 

  branchname varchar(4000));



create table label(uri varchar(4000), xnumber varchar(20), 

  label varchar(4000));



create table property(uri varchar(4000), xnumber varchar(20), 

  name varchar(4000), value varchar(4000), namespace varchar(4000), 

  type varchar(100), protected int);



create table revisioncontent(uri varchar(4000), xnumber varchar(20), 

  content blob);

Cloudscape


create table objects(uri varchar(3200) primary key, classname varchar(4000));



create table children(uri varchar(4000), childuri varchar(4000));



create table links(link varchar(4000), linkto varchar(4000));



create table permissions(object varchar(4000), revisionnumber varchar(20), 

  subject varchar(4000), "ACTION" varchar(4000), inheritable int, negative int);



create table locks(id varchar(4000), object varchar(4000), 

  subject varchar(4000), type varchar(4000), 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri varchar(3200) primary key, 

  isversioned int, initialrevision varchar(10));



create table workingrevision(uri varchar(4000), 

  baserevision varchar(20), xnumber varchar(20));



create table latestrevisions(uri varchar(4000), 

  branchname varchar(4000), xnumber varchar(20));



create table branches(uri varchar(4000), xnumber varchar(20), 

  childnumber varchar(20));



create table revision(uri varchar(4000), xnumber varchar(20), 

  branchname varchar(4000));



create table label(uri varchar(4000), xnumber varchar(20), 

  label varchar(4000));



create table property(uri varchar(4000), xnumber varchar(20), 

  name varchar(4000), value varchar(4000), namespace varchar(4000), 

  type varchar(100), protected int);



create table revisioncontent(uri varchar(4000), xnumber varchar(20), 

  content long varbinary);

Microsoft SQL Server


EXEC sp_addtype N'uri', N'varchar (800)', N'not null'



create table objects(uri uri primary key, classname text);



create table children(uri uri, childuri uri);



create table links(link uri, linkto uri);



create table permissions(object uri, revisionnumber varchar(20), 

  subject uri, action uri, inheritable int, negative int);



create table locks(id uri, object uri, subject uri, type uri, 

  expirationdate varchar(15), inheritable int, xexclusive int);



create table revisions(uri uri primary key, 

  isversioned int, initialrevision varchar(10) );



create table workingrevision(uri uri, baserevision varchar(20), 

  xnumber varchar(20) );



create table latestrevisions(uri uri, branchname text, 

  xnumber varchar(20) );



create table branches(uri uri, xnumber varchar(20), 

  childnumber varchar(20) );



create table revision(uri uri, xnumber varchar(20), branchname text);



create table label(uri uri, xnumber varchar(20), label text);



create table property(uri uri, xnumber varchar(20), name text, value 

  text, namespace text, type varchar(100), protected int);



create table revisioncontent(uri uri, xnumber varchar(20), content image);


Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata, powered by Terra-International Inc.
<% orig();%>