mysql (2)_PHP チュートリアルに基づいた BBS デザイン

WBOY
リリース: 2016-07-21 16:03:27
オリジナル
947 人が閲覧しました

3.データベース設計
重要なのは、依然として mysql の効率、mysql メモリの適切な割り当て、特にテーブル キャッシュの
サイズです。さらに、システムの電源が突然失われるとどうなりますか? mysqlは堅牢ですか?
テーブルの名前設計では、タイプを示すプレフィックスが使用され、すべて小文字 (?) で表されます。例:
ユーザー テーブルのように、システムのデータベースの前に s が付きます: suser (sUSER はどうですか?)
s: システムテーブル、suser、sclass
m: ユーザーメールテーブル、msysop、mdrangon
w: ユーザーメッセージテーブル、wsysop、wdrangon
a: レイアウトインデックステーブル、alinux、acampus
b: レイアウトアーティクルテーブル、 blinux、bcampus
c: 特殊分類レイアウト テーブル、cnewboard
i: 必須領域インデックス テーブル、ilinux、ilinux01、icampus、icampus04
j: 必須領域記事テーブル、jlinux、jcampus、

また、文字列と数値のどちらを使用する必要がありますか識別子として?たとえば、sysop という名前のアカウントの場合、その
id は 1 です。彼の文字のテーブルは msysop ですか、それとも m00001 ですか?同様に、campus というバージョンの場合、対応する
コードは 5 です。つまり、このバージョンの記事のテーブル名は bcampus ですか、それとも b00005 ですか?文字列を使用するとわかりやすいかもしれません。エラーを確認してみましょう。

ユーザー情報テーブル: suser
usernum int unique, // 一意の識別子、最大 30,000 アカウント、少なすぎますか?
userid char[20] Primary key, // ソートキー、ID、すべて小文字。
passwd char[20], // パスワードは、暗号化された暗号文を保存します。
realid char[20], //実際の ID、大文字と小文字混合。
username char[24], // ユーザーのニックネーム
userlevel longint, // 64 権限?
numlogins int,
numposts int,
firstlogin time,
lastlogin time,
stoptime time, /* 合計滞在時間*/
lasthost char[32],
email varchar[100],
address varchar[100],
/ / 他にデータは必要ですか?後でテーブルを変更できるように、特定の予約値を確保しておく必要がありますか
// 新しいフィールドを追加するときの効率はどれくらいですか?

レイアウト分類テーブル: sclass
classnum int unique, // 分類識別子
classid char[20], // 分類英語 id:computer
classname varchar[100], // 分類中国語の説明: Computer World
classtable char [20 ], // 特殊なカテゴリに対応するレイアウト テーブル
// 一般的に、Riot セクションなどの特殊な分類の場合、各レイアウトは 1 つのカテゴリにのみ属します。
// 新しいレイアウトは特殊なテーブルで記述できます

ボード テーブル。 : sboard
boardnum int unique, // ボードの識別 (必要ですか?)
boardid char[20], // ボードの英語名
boardname varchar[100], // ボードの中国語名
boardclass char [20 ], // ボードが属するカテゴリ
boardsysop varchar[100], // Bamboo リスト
boardposts int, // ボード内の記事数
boardlevel int, // ボードの読み取りおよび書き込み権限
Indextable char[20], // 対応するボード インデックステーブルの名前: aboardid?
texttable char[20], //レイアウトに対応する記事テーブル名: bboardid?
// 最後の 2 つの項目が表示される必要がありますか? それらは必然的な対応と見なすことができますか? それとも、
// より大きな柔軟性を可能にしますか?さらに、レイアウトの大文字化の問題を直接デフォルトにできますか?
// 最初の文字のみが大文字になります。

特別なカテゴリのレイアウト テーブル: snewboard、sstarboard
boardid char[20], // レイアウトの ID
/ / その​​ようなテーブルは必要ですか?

レイアウトインデックステーブル: acampus、alinux、afootball。 。 。 。 。 。
id int, // 記事番号、手動で調整しますか? ? ? ?
mark char[1], // 記事マーク、m、g、b、d。 。 。 。
title varchar[100], // 記事タイトル
Writer char[20], // 記事著者 ID
posttime time, // 公開時刻
textnum longint, // 対応する数値? ? ?調整なし

レイアウト記事テーブル
textnum longint, // 記事番号?
textword text, // 記事の内容?
// インデックスと記事コンテンツを分離する必要がありますか?効率の観点から、遅延フラッシュ
// は避けられません。削除するには、最初にマークを付けます。

// ユーザーのページの記事の未読データは比較的複雑ですか? これを実現するには、さらに多くのテーブルを作成する必要がありますか?
//
// 投票機能はまだ考慮されていません。 。 。 。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316252.html技術記事 3.データベース設計の鍵となるのは、MySQL の効率と、MySQL メモリの適切な割り当て、特にテーブル キャッシュのサイズです。さらに、システムの電源が突然失われるとどうなりますか? mysqlは堅牢ですか?テーブルの名前...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート