私はテーブルの3つの列(タイトル、タフ、Id)唯一の8つの異なる値を入力することができます匿名を持っています。今私は知ってほしい、それぞれの値私は何をすべきmysqlのほうが優れています。レコードが1つ、テーブルが1つ大きい。レコードの
答えて
を照会速いSQLのための私のデータベースでタフなの
(タイプがVARCHAR
であると仮定して)、次の2つの列(型ID、タイプ)を有する1つの新しいテーブルを作成します。その後、あなたの匿名のテーブルへの参照を置く。これによりデータストレージが削減され、8つの値を1回取り込むだけで済みます。次に、これらの8つの値を参照するためにnumberを使用します。
これがクエリのパフォーマンスを向上させるかどうかはわかりませんが、データベースには冗長データが少なくなります。
ニース............. –
@AnkitGautamはこれがあなたを助けたと答えているのを忘れないでくださいout :) –
あなたは列anonymous_id
、title
、およびtype_id
で別のテーブルを作成するよりも、列type_id
とtype_name
でテーブルTypes
を作成する必要があります。
第2のテーブルでは、type_id
は、テーブルTypes
のプライマリキー(type_id)にリンクする外部キーになります。
テーブルが最適化され、データの重複が少ないようにして、データベースにすでに存在するタイプのみを許可することができます。
私は質問を更新しましたのであなたの答えを変更してください –
8つのテーブルを作成する必要はありませんが、type_nameとtype_idを含む1つの余分なテーブルを作成することをお勧めします。その後、最初の列でFK_typeを追加し、2番目の列にtype_idを参照できます。 –
私はあなたがそれのために単一のテーブルを使用し続け、どのように動作するかを見ることをお勧めします。アプリケーション構造を簡素化し、さまざまな問題の視野を妨げることはありません。
ただし、期限が到来している場合は、アプリケーションの構造とインデックスの成長の仕方を考慮する必要があります。アプリケーションを変更するのが大変な場合は、解決できない問題が発生するまですぐにやり直す必要があります。
一般に、データ構造を正規化し、測定が必要であることを示したら、パフォーマンスを心配する必要があります。
CREATE TABLE `Anonymous` (
`id` INT NOT NULL AUTO_INCREMENT,
`tough_id` INT NOT NULL,
`title` VARCHAR(64),
PRIMARY KEY (`id`),
KEY `idxTough` (`tough_id`)
);
CREATE TABLE `Tough` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `Tough` (`name`) VALUES ('ToughA'), ('ToughB'), ('ToughC'), ('ToughD');
INSERT INTO `Anonymous` (`title`, `tough_id`) VALUES
('Anon with tough A', 1),
('Anon with tough B', 2),
('Anon with tough C', 3),
('Anon with tough D', 4)
;
- 1. 1つのレコードがmysql dbに格納されない
- 2. レコードが1つだけ挿入されています
- 3. Mysql:1つのテーブルにレコードを挿入するのが長すぎます
- 4. 最高のもの:レコードごとに1つのテーブルまたはすべてのレコードが外部キーにリンクされた1つのテーブル?
- 5. ランダムなレコードですが、各カテゴリから最大1つです
- 6. SQLテーブル内の2つのレコードに基づいて1つのテーブルからレコードをフェッチするクエリ
- 7. 1つのMySQLコマンドでMaxレコードとMinレコードを選択する
- 8. 1つのレコードのサイズ? SQL
- 9. MySQL 10Mレコードの各ユーザーごとに1つのテーブルまたは別のテーブルdb
- 10. 2つのレコードを別のテーブルに入れて2つのレコードを作成する1つのテーブルに2つのレコードを結合する
- 11. テーブル2のレコードがほとんどないテーブル1の各レコードを結合するにはどうすればよいですか?
- 12. データベース設計 - 数十億のレコードが1つのテーブルにありますか?
- 13. テーブル内の各カテゴリからレコードを1つずつフェッチする
- 14. mysqlにレコードを1つだけ持つようにテーブルを制限することはできますか?
- 15. MySQLの - 私は1つのテーブルに次のデータを持っている一つのレコード
- 16. MySQLは、テーブル2に一致するレコードが見つかると、データをテーブル1に挿入します。
- 17. データベースにレコードを1つ追加したいが、2レコードに達するたびにレコードを2倍にする
- 18. テーブル変数がSQL Serverに持つことができるレコードの最大数
- 19. はカウントがされているすべてのレコードを選択するSQLiteの1より大きい
- 20. レコードをループし、レコードを1つ更新して終了する
- 21. 複数のレコードをMYSQLの1つのフォームで更新する
- 22. mySQL 2つの勘定に3つのテーブルが含まれている1つのクエリ
- 23. 2つのテーブルから1つのレコードを検索して削除しますか? MySQL PHP
- 24. チェック少なくとも1つのレコードが指定された属性が真
- 25. MySql重複レコードのうちの1つだけを更新します
- 26. 1つまたは複数のテーブルのAndroid SQLite dbから空のデータのレコードが返されます
- 27. MySQL。 1つのテーブルのロードダンプ
- 28. mysqlは1つのテーブルにレコードを数え、必要な場合には
- 29. InstallShieldで大きなセットアップファイルが1つも作成されない
- 30. 大きなテキストが1つあるUILabels
私はあなたが何を求めているのかよく分かりません。これは型を保持するテーブルですか、これは型を持つ項目を持つテーブルですか? (どちらにしても、私の答えは一つのテーブルにこだわっています) – Corbin
商品には種類があります –