【发布时间】:2011-05-17 19:03:24
【问题描述】:
假设我有一个在线商店,其中每个产品都分配有一个类别(并且有数百个类别可供选择)(例如“书籍”、“便携式 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 播放器)。
【问题讨论】:
标签: mysql database database-design