2006年06月17日

リストやライブラリでの列の作成時の制限について

 InfoPath フォームの発行時 (→ InfoPath フォームのフォームライブラリへの発行) にもっとも影響があるかな・・・

InfoPath フォームによるフォームライブラリの作成とフィールドと列の関連付けに限らず、リストやライブラリにて列を作成時に、列の数が多いと作成出来なくなる限界があります。
リストやライブラリで普通に使っている限り、ほとんどの場合にこの制限を超えることは少ないと思いますが、InfoPath フォームの場合はフィールドの数が多い複雑なフォームの場合は確実に該当することになると思います。
この制限に関しては、以下の技術情報に基づきます。

・SharePoint サービス リストに新しい列を追加すると、「列制限を超えた」メッセージ
<http://support.microsoft.com/kb/823555/ja>

ばりばりの機械翻訳なので判り辛いですね。 原文の方は遥かに判り易いと思います。
日本語版の表記に合わせると以下のようになります。
  • 「1 行テキスト」と「選択肢」 (「ドロップダウン メニュー」又は「ラジオ ボタン」)の組合せの合計: 64個
  • 「複数行テキスト」と「選択肢」 (「チェックボックス」)の組合せの合計: 31個
  • 「数値」と「通貨」: 32個
  • 「ハイパーリンクまたは画像」: 32個
  • 「日付と時刻」: 16個
  • 「参照」: 16個
  • 「はい/いいえ」: 16個
  • 「集計値」: 8個
ちなみに、なんでこのような制限が存在するのかご存知でしょうか?
答えは、この列が物理テーブルにどのように展開されて格納されているかという所にありました。

DBスキーマ構造は以下のホワイトペーパーの中の「コンテンツ データベース スキーマ」というトピックにあります。

・Windows SharePoint Services のアーキテクチャの概要
<http://www.microsoft.com/japan/msdn/sharepoint/server/ODC_WSSArchitecture.asp>

列の情報はユーザーデータ テーブルに格納されています。

・Content Database - UserData Table
<http://msdn.microsoft.com/library/en-us/spptsdk/html/tsdbtbUserData_SV01072542.asp>

見てびっくり! とんでもないスキーマ構造です。 確かに汎用性を保ちつつ性能を重視するとこんな形になってしまうのでしょうかね。 データ格納という観点では効率悪そうです。

posted by kunitaka at 01:38| Comment(0) | TrackBack(0) | 技術情報
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/858619
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック