2016-11-09 16 views
-1

如果值得拥有1个可能含有大量NULL列的表,或者最好有更多的表没有NULL, (在带有INNODB引擎的MYSQL DB中)我应该使用1表与大量的NULL列或更多表没有NULLs?

例如:我有一个标题表,用于存储分类广告的所有常见事物。如标题,描述等...

现在,如果它是一个汽车广告,你必须有特殊的属性,例如燃料类型,传输类型等。

如果它是你必须包括属性的招聘广告像工作类型,工资等。

所以,现在我应该使用一个头表和另外两个表来存储作业属性和车辆属性或将所有这些包括在头表中。因此,如果它是一个Job ad广告车辆列将保留NULL值。

请注意,这些Null列将用于某些查询。所以我也需要索引它们。

+0

这是一个奇怪的问题。假设你有地址来存储,所以你可能需要一个地址表。但部分地址可能未知或不适用,例如可选公司名称,可选邮箱号码。你真的在问现在是否应该将这个地址作为address_without_company_and_postbox表,再加上一个company_name_for_address表和一个postbox_for_address表,因为这些字段可以是NULL?这似乎没有道理。 –

+0

如果你描述了一些可能进入表格的数据以及为什么会有大量的NULL列,这个问题可能会得到更好的答案。 – mendosi

+0

查看我添加的EAV标签。 –

回答

0

通常,实体重叠的属性越多,您希望将所有这些属性放在同一个表中的可能性越大。

如果一个工作广告只与车辆广告共享其属性的50%,那么将它们放在不同的表格中可能会很好。

还取决于如何查询数据,如果查询想要获得下一个广告,并不关心下一个是工作还是汽车,那么也许他们应该在同一个表中。

相关问题