質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

2回答

537閲覧

データベース設計について

makibi5577

総合スコア112

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

2クリップ

投稿2019/05/10 03:27

DB設計について勉強しています。
条件が多くなる場合のDB設計方法が知りたいです。

具体例として賃貸検索をするためのDBを作成する場合、
主な条件検索は以下が考えられ、

  • 賃料
  • 間取り
  • 築年数

細かい条件になると以下のようなものがあると思います。

  • バストイレ別
  • エアコン
  • 駐車場
  • 南向き
  • などなど

細かい条件は、おそらく20~30条件はあり、
今後追加される可能性も考えられます。

この場合カラムは条件の数だけ
無限に増やしていく設計になるのでしょうか?

適切な設計例があれば教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

スピードだけを確保したいなら無限に横に伸ばしていくのが間違いない
イメージとしてはエクセルで管理している感じ
ただし条件が追加されるたびにテーブル構成を変更するのは無謀

例えば物件によっては利用しない項目があったり一つの項目に複数のデータを
登録したりするなら、当然、必須事項は物件テーブルに横方向に伸ばすとして
オプションデータについてはマスターと中間テーブルを使って管理するとよいでしょう

物件テーブル

  • 物件A:BID=101
  • 物件B:BID=102

オプション条件

  • バストイレ別:OID=10001
  • エアコン:OID=10002
  • 駐車場:OID=10003
  • 南向き:OID=10004

中間テーブル

仮に物件Aがバストイレ別、エアコン完備、南向き、物件Bが駐車場付き、南向きとすると

物件IDオプションID
10110001
10110002
10110004
10210003
10210004

みたいな感じになります

別の考え方

SQLとしてのメリットを無視してあえて正規化をあきらめ、
データ管理だけを主眼とするなら
オプションデータは一つのJSON型のカラムに叩き込むという考えもあります

投稿2019/05/10 03:45

編集2019/05/10 03:48
yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makibi5577

2019/05/10 03:52

大変参考になりました。適切な説明ありがとうございます。
guest

0

実際のアパートを探すサイトからどんなテーブル設計になっているか考えては?
Home's 賃貸 東京
SUUMO 賃貸 東京

投稿2019/05/10 03:43

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問