如何为每种产品都有多个参数的产品设计一个产品表

如何为每种产品都有多个参数的产品设计一个产品表

我在餐桌设计方面没有多少经验。我的目标是创建满足以下要求的一个或多个产品表:

  • 支持多种产品(电视,电话,个人电脑,.)。每种产品都有一组不同的参数,例如:

    • 手机会有颜色,大小,重量,操作系统.。

    • PC将有CPU,HDD,RAM.

  • 参数集必须是动态的。您可以添加或编辑任何您喜欢的参数。

如果没有针对每种产品的单独的表,我如何才能满足这些要求?


波斯汪
浏览 633回答 3
3回答

呼唤远方

以下是Eav的一些缺点:No way to make a column mandatory (equivalent of NOT NULL). No way to use SQL data types to validate entries. No way to ensure that attribute names are spelled consistently. No way to put a foreign key on the values of any given attribute, e.g.查找表。你在这里提到的所有事情:数据验证属性名拼写验证强制列/字段处理相关属性的销毁在我看来,根本不属于数据库,因为没有一个数据库能够像应用程序的编程语言那样在适当的级别上处理这些交互和需求。在我看来,以这种方式使用数据库就像用石头敲钉子一样。你可以用石头来做这件事,但你不应该用锤子,它更精确,而且是专门为这种活动设计的吗?获取常规表格布局的结果既复杂又昂贵,因为要从多个行获取属性,需要对每个属性进行联接。这个问题可以通过对部分数据进行少量查询并将其处理为您的应用程序的表格布局来解决。即使您有600 GB的产品数据,如果需要来自本表中每一行的数据,也可以分批处理。进一步说,如果您想提高查询的性能,您可以选择某些操作,例如报告或全局文本搜索,并为它们准备索引表,这些索引表将存储所需的数据并定期重新生成,比方说每30分钟一次。你甚至不需要担心额外数据存储的成本,因为它每天变得越来越便宜。如果您仍然关注应用程序所做操作的性能,则可以始终使用Erlang、C+、Go语言对数据进行预处理,然后只需在主应用程序中进一步处理优化后的数据。
打开App,查看更多内容
随时随地看视频慕课网APP