私は、各商品に1つのカテゴリ(選択可能なカテゴリは数百種類)(例:「書籍」、「ポータブルDVDプレーヤー」など)があるオンラインストアを持っているとします。各カテゴリの説明フィールドを提供する必要がある場合(たとえば、「著者」が「ブック」カテゴリのフィールドになります)、これをデータベースで表現する最良の方法は何ですか?データベース設計:名前と値のペア - 良いか悪いですか?
オプション1(名前と値のペア):
===========================
field
===========================
- field_id
- category_id (FK, referring to category like "book")
- name
- value
これは私がどのカテゴリに一つのテーブルに依存していることを意味します。私は、このデータを他の書籍と並べて表示するのに必要なピボット操作が潜在的な問題であると懸念しています。
オプション2(個々のテーブル):
===========================
book_field
===========================
- book_field_id
- book_id (FK, referring to the actual book)
- author
- title
- publisher
- date_published
...
これは私がカテゴリごとにテーブルを必要とすることを意味します。
注:重要なことではありませんが、カテゴリはカテゴリの階層(エレクトロニクス - > DVDプレーヤー - >ポータブルDVDプレーヤーなど)からのものです。
現実世界のノート - 私の仕事では、我々は非常に似ていますが、ユニークな特性であるフォームのいくつかのタイプを持っている - 私たちは、それぞれに固有のテーブルを使用する、ためのテーブルをいくつかの一般的な要素(名前、住所など)、およびこれらのオブジェクトをまとめて表示する必要があるときにそれらを集約するのに役立つビューがあります。 –
ボブが言ったこと。また、「汎化特化関係モデリング」も検索してください。 –
合意。名前と値のペアのシステムでは、各カテゴリ(BookID、Author、Titleなど)の列を持つ簡単なデータテーブルを返すのが難しくなります。 –