1

私はまだデータベース設計に不慣れで、少し苦労しています。

メインカテゴリとサブカテゴリの属性を持つ製品テーブルがあり、データベーステーブルとクラス図の適切な設計を特定するのに苦労しています。

たとえば、オレンジのmain_categoryは「Fruit」であり、そのサブカテゴリは「pulpyfruit」であり、別の製品はブロッコリーであり、そのmain_categoryは「Vegetable」であり、そのサブカテゴリは「FibrousVegetables」です。したがって、サブカテゴリもmain_categoryの下にあり、選択したmain_categoryに応じて、サブカテゴリのリストを選択できると思います。

私の現在のデザインは次のようなものです。

=======================       =======================       =====================
|        PRODUCT      |       |     SUBCATEGORY     |       |   MAIN CATEGORY   |
=======================       =======================       =====================
| PK       id         |       |PK         id        |       |PK       id        |
|         name        | --->  |          name       | --->  |        name       |
| FK main_category_id |       |FK main_category_id  |       =====================
| FK  subcategory_id  |       =======================                      ^
=======================  --------------------------------------------------|

しかし、私は現在のデザインに疑問を持っており、このデザインが受け入れられるかどうか、またはこれをデザインするためのより良い方法があるかどうかについて意見を求めたいと思います。

また、OOPに関して、これはどのような関係になりますか?

4

1 に答える 1

0

サブカテゴリもカテゴリであるため、すべてを 1 つのテーブルに含めることができます。こんなデザインもあるかもしれませんが、

Product(id, name)

Category(id, name)

ProductMaincategoryAssignments(productId, categoryId)

ProductSubcategoryAssignments(productId, categoryId)

ここで、productIdcategoryIdは、ProductテーブルとCategoryテーブルの対応するIDを参照する外部キーです。

于 2013-03-14T07:54:04.093 に答える