| 549 | ==== データベースにテーブルを追加する ==== |
| 550 | |
| 551 | 次に、データベース内で実際にデータが格納されるテーブルを作成するのですが、その前に、掲示板で使用するデータベーステーブルについてレイアウトを考える必要があります。 |
| 552 | |
| 553 | 今回は認証もなく、スレッドを分けたりといったことも考慮しないので、コメントを保存するテーブルが 1つだけあれば事足りるでしょう。テーブルの仕様は以下の通りとします。 |
| 554 | |
| 555 | * テーブル名: !MessageBoardTable |
| 556 | * フィールド: |
| 557 | * !MessageNum ... ユニークな通し番号 (int型, Primary Key, NULL 非許容) |
| 558 | * Author ... 投稿者名 (nvarchar型 32文字まで, NULL 非許容) |
| 559 | * !PostDateTime ... 投稿日時 (datetime2型, NULL 非許容) |
| 560 | * Detail ... メッセージ内容 (Text型, NULL 非許容) |
| 561 | |
| 567 | |
| 568 | ここで、「テーブル」フォルダを右クリックし、「新しいテーブルの追加」を選択しましょう。 |
| 569 | |
| 570 | [[Image(fig-append-dbtable-01.PNG, align=center)]] |
| 571 | |
| 572 | [[Image(fig-dbtable-design-01.png, 640px, align=center)]] |
| 573 | |
| 574 | するといきなり、上図のような、テーブルレイアウトを設計する画面が表示されます。画面は上下に分かれていて、上がテーブルレイアウトのデザインを表示・編集する領域、下は、テーブルを実際に生成する際に使用する CREATE TABLE ステートメントの SQL 文[[FootNote(よく DDL と呼ばれているものですね。)]]自体を表示・編集する領域となっています。 |
| 575 | |
| 576 | まず、テーブル名を設定する必要がありますが、それは SQL 文を直接編集することによって行います。 SQL 文の |
| 577 | |
| 578 | {{{#!sql |
| 579 | CREATE TABLE [dbo].[Table] |
| 580 | }}} |
| 581 | |
| 582 | となっている行を、 |
| 583 | |
| 584 | {{{#!sql |
| 585 | CREATE TABLE [dbo].[MessageBoardTable] |
| 586 | }}} |
| 587 | |
| 588 | と修正してください。 |
| 589 | |
| 590 | SQL に詳しい方であれば、このままフィールドの定義も SQL 文に直接書き加えていっても構わないのですが、こちらは画面上の方で入力しましょう。まず、 1行目の Id フィールドは名前を !MessageNum に変更します。 2行目は名前を Author 、データ型を nvarchar(32) 、そして「Null を許容」の列のチェックを外します。 |
| 591 | |
| 592 | このような容量で、テーブルレイアウトのデザインを、以下の表のとおりになるように入力してください。 |
| 593 | |
| 594 | ||= 鍵マーク =||= 名前 =||= データ型 =||= Null を許容のチェック =||= 規定 =|| |
| 595 | || 付ける || !MessageNum || int || 外す || || |
| 596 | || || Author || nvarchar(32) || 外す || || |
| 597 | || || !PostDateTime || datetime2(7) || 外す || SYSDATETIME() || |
| 598 | || || Detail || text || 外す || || |
| 599 | |
| 600 | デザイン情報を入力していくと、 SQL 文の方も変更に応じて自動的に書き換わっていきます。よくできてますねー。 |
| 601 | |
| 602 | 最後に、 !MesageNum は自動的に通し番号を設定するようにしたいので、 SQL 文にて、 |
| 603 | |
| 604 | {{{#!sql |
| 605 | [MessageNum] INT NOT NULL PRIMARY KEY, |
| 606 | }}} |
| 607 | |
| 608 | となっている行を、以下のように修正してください。 |
| 609 | |
| 610 | {{{#!sql |
| 611 | [MessageNum] INT IDENTITY(1,1) NOT NULL PRIMARY KEY, |
| 612 | }}} |