0

サーバー側プログラミング (PHP) の学習を始めたばかりで、MySQL データベースを使用して一部のユーザーのデータ (メモなど) を保存する簡単なアプリケーションを作成したいと考えています。私はデータベースの初心者で、アカウント情報 (ユーザー名、パスワードなど) をデータベースのデータにリンクする方法がわかりません。

そのようなデータベースを設計するための最良のアプローチは何だと思いますか? (アカウント情報を含むテーブルを作成してから、各ユーザーのデータを含むテーブル、または 1 つの大きなテーブルを作成できると思っていましたが、データベースの構造については何も知りません)。
それを行う最善の方法は何ですか?これは単なるテスト アプリケーションになりますが、多くのユーザーがいる大きなアプリケーションで効率的に動作するものも知りたいです。

ありがとう。

4

3 に答える 3

0

データの構造を調べることから始めます。あなたが示した例では、ユーザーが複数のメモを持つことができると仮定して、ユーザー テーブルとメモ テーブルを作成します。それぞれに、インデックス付きの (そして一意の) ID フィールドがあります。Note テーブルには、User テーブルの ID と一致する UserID フィールドがあります。

入門用のデータベース設計チュートリアルを実際に検索する必要があります。経験は、あなたがこれを上手にできるようになる唯一の方法です。

于 2013-07-25T23:31:37.693 に答える
0

1 つの大きなテーブルは、パフォーマンスの問題に対処するためだけに行うものです。コストはデータの重複であり、データの完全性が低下する可能性があり、データベース設計者はあなたがあまり得意ではないと考えています.

適切なデザインを提供するのに十分な情報はどこにもありません。なぜそれが適切なのかを理解しない限り、実際には役に立ちません。

最後に 3NF (第 3 正規形) までの正規化に関するチュートリアルを見つける必要があります。

あなたが言ったことに基づいて、これは少し混乱しています

少なくとも UserID を持つユーザー情報を保持する 1 つのテーブル 次に、少なくとも NoteID と UserID を持つ UserNotes と呼ばれる別の関連テーブル (ユーザーが複数のメモを持つことができると仮定)。

それ以上のことはできません。Google でチュートリアルを検索してください。PHP に近づく前に、SQL だけを学んでください (MySQls フレーバーを最初に)。PHP に関するチュートリアルもたくさんあります。PDO を使用するものを探します。

于 2013-07-25T23:32:59.170 に答える
0

単純なメモ アプリケーションの場合、「users」と「notes」という情報を格納する 2 つのテーブルを作成する必要があります。次に、コードでユーザー入力全体を処理し、それらのテーブルにクエリします。「notes」テーブルに「user_id」フィールドがあることに注意してください。クエリを選択または挿入するときに、ノートを「users」テーブルの「id」フィールドにリンクする場所です。

データベースがどのように見えるかの例を次に示します。

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `notes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` text NOT NULL,
  `user_id` varchar(255) NOT NULL,
  PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

このサイトには、PHP を始めるのに役立つ情報がたくさんあります。 実践的な PHP プログラミング

于 2013-07-25T23:33:09.057 に答える