我们有许多类别的大量数据,具有许多属性,例如
category 1: Book
properties: BookID, BookName, BookType, BookAuthor, BookPrice
category 2: Fruit
properties: FruitID, FruitName, FruitShape, FruitColor, FruitPrice
我们有很多类别,例如书籍和水果。显然我们可以为它们创建许多表(例如 MySQL),每个类别一个表。但这将不得不创建太多的表,我们必须编写许多“适配器”来统一操作数据。
难点在于:
1) 每个类别都有不同的属性,这导致不同的数据结构。
2) 每个类别的属性可能需要随时更改。
3)如果每个类别一个表(表太多),很难操作数据
您如何存储此类数据?
最佳答案
您可以将数据库分为两部分:定义表和数据表。基本上,定义表用于解释存储实际数据的数据表(有人会说如果用 XML 表示定义表会更优雅)。
下面是基本思路。
定义表:
TABLE class
class_id (int)
class_name (varchar)
TABLE class_property
property_id (int)
class_id (int)
property_name (varchar)
property_type (varchar)
数据表:
TABLE object
object_id (int)
class_id (varchar)
TABLE object_property
property_id (int)
property_value (varchar)
最好也能创建额外的Layer来解释结构,以便Data Layer更容易对数据进行操作。当然,您必须考虑性能、查询的便利性等。
只是我的两分钱,我希望它能有所帮助。
问候。
关于php - 如何高效地存储多类别、多属性的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399215/