假设我有一个在线商店,每个产品都属于一个单一类别(有数百个可供选择的类别),例如“书籍”、“便携式DVD播放器”等。如果我需要为每个类别提供描述性字段(例如,“作者”是“书籍”类别的一个字段),那么在数据库中最好的表示方法是什么?
选项1(名称-值对):
这意味着我需要为每个类别创建一个表格。
注意:虽然我认为这并不重要,但类别将来自类别层次结构(例如,电子产品-> DVD播放器->便携式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播放器)。