| | 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 | }}} |