私は出版社のデータベースを作成しています。同社には約1300冊の本と約6〜7拠点があります。今、私はすべての場所に在庫アイテムを表示するテーブルを作成しました。テーブルには、ユーザーに次のようになります。mysqlを使った在庫管理のアイデア
Book Name Location1 Location2 Location3 ......
History 20000 3000 4354
Computers 4000 688 344
Maths 3046 300 0
...
私はすでに、書籍のすべての詳細を保存するブックのテーブルを持って、私はまた、オフィスの情報を持っているオフィスのテーブルを持っています。私は次のように私のデータを保存する場合、私は繰り返しの多い巨大なテーブルになってしまいます上記のような情報を示す在庫管理表作成した場合、今:だから
Column1- Book_ID Column2- Location_ID Column3- Quantity
1 1 20000
1 2 3000
1 3 4354
2 1 4000
2 2 688
...
を、私はこのISNを考えます1300 (Books) X 7 (Locations) = 9100 rows
で終わるようにデータを格納する最善の方法はありません。データを格納するためのより良い方法はありますか?今私は書籍の安定した7列を追加することができますが、私は新しい場所を作成する場合、私は書籍のテーブルに別の列を追加する必要があります。
上記の方法が適していると思われる場合やアドバイスをいただければ幸いです。
正しいインデックスのInnoDBを使用して、サーバとしてのPentium 4を使用している場合を除き、最大10万レコードで問題ないはずです。これと一緒に行く、それは正しい、共通の解決策です。 – Vyktor
最初の提案は、location1、location2、location3列を取り除き、書籍のIDと位置IDと数量を示す子テーブルを持つことです。現在の構造では、場所を追加または削除する場合は、DBを再加工する必要があります。 mysqlを使用する場合は、標準のデータ型を使用してください。これは新しいプラットフォームに簡単に移植できないので、奇妙な列挙型やセットには入り込まないでください。 – Brian
@Vyktor - ペンティアム4でもこの量のデータを扱うことはできません(クエリ量が比較的少ないと仮定した場合) – cdeszaq