我有一张服务台。每个服务由 1 个主要类别和 1 个子类别定义。
例如,
服务 = 乔的网络公司, MainCategory = 信息技术, 子类别 = Web 开发
提供的每项服务都将具有一组共同的属性(成本、位置等)
每个服务还将具有一组特定于 SubCategory 的属性。
所以在我上面的示例中,Joe 的网络公司可能具有以下属性:PHP(BOOL):1、MySql(BOOL):0、Javasctipt(BOOL):1 等
或者对于 Actor ,他们可能具有以下属性:EyeColour(ENUM): Blue, Height(float): 5.11
因此,我认为父类(super class)型/子类型关系最有效,但我们可能讨论超过 500 个表。
我还需要能够跨主要类别搜索服务。为此,我正在考虑在主服务表中创建一个关键字列,这样我就不需要查找每个子类型的表(某些类别可能有 50 个子类型/表)。我会每晚运行一个脚本,用解释每个服务子类型的属性的文本填充此列(例如,对于 Joe,他的关键字列将包含“PHP Javascript”)。
考虑到表的数量,这种方法看起来不错还是 EAV 解决方案更适合?
最佳答案
我认为创建 500 多个表不是可行的方法。在我看来,您的结构是“无模式”的,而不是纯粹的关系结构。我会考虑使用专用的面向文档的 dbms(Mongodb、Tokyo Cabinet)或推出您自己的数据库,使用 mysql 作为低级数据存储(请在此处查看 http://bret.appspot.com/entry/how-friendfeed-uses-mysql 以获得出色的示例)。
关于php - 帮助父类(super class)型/子类型? (和类别..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563371/