0 0

这种需求,应该如何设计数据库?5

需求:

用户可为自己的产品增加多种属性,属性用在产品添加、产品搜索、产品列表等功能上。

可对属性进行排序。

假设:
用户增加重量、金额、运费,3个属性。
添加产品、查询产品、产品列表,就可以显示他们,并且有较高的运行效率。

问题补充:其实主要就是由用户自己 预先设定N个属性,CURD的时候,可以用。

问题补充:昨天有个朋友给了个建议,EAV模型;和下面一个朋友的key=>value建议雷同;
但我对这样模型的查询却认为不太好啊…

问题补充:补充一下:我目前用了主表、属性表,关系是“一对多”,但如何用一个SQL语句输出、检索、排序?
这才是重点啊,我觉得这并不是一个特别初级的题目,求高手。
PHP 
2012年6月10日 17:56

6个答案 按时间排序 按投票排序

0 0

建立一个自定义字段的表

2012年6月11日 17:25
0 0

建立维护元数据的数据库表,我们自定义表单产品中也有类似的需求.

2012年6月11日 17:10
0 0

你使用什么数据库?
如果是关系型的:
  首先你需要一个产品属性表来记录产品的属性,记录中应该包括属性中文名、对应数据库表、数据库字段名、是否排序,排序方式等等信息。然后用户在添加和删除属性时修改这张表的记录,同时自动动态增加、删除对应表字段。
如果是NOSQL的:
  key-value查询这个不是问题吧
希望对你有帮助

2012年6月11日 16:31
0 0

这种需求很常见啊,建动态字段表

2012年6月11日 11:54
0 0

预先设定?那如果很多个产品,都预先这么多字段,这么多的产品表怎么维护?一大堆莫名其妙的字段很恶心。
之前做过资源模型。通过动态配置并执行alter table增加字段,CURD的时候也是动态语句,应该就可以了。不知是否有更好的方案

2012年6月11日 09:58
0 0

新建一张表4个字段 productId,key(属性),value(值),sequence(显示的次序)

2012年6月11日 09:52

相关推荐

    什么是NoSQL数据库?

    在选择数据库时,应根据具体需求权衡利弊,例如小型企业应谨慎考虑NoSQL,因为它可能需要更高的硬件配置。NoSQL并非万能,但对需要处理大规模数据和高并发请求的大型项目而言,NoSQL常常是不可或缺的解决方案。

    数据库设计指南 数据库设计

    - 数据量的增长是不可避免的,因此在设计数据库时应该考虑到这一点。例如,Y2K问题之前,很多系统都因为没有考虑到未来数据的增长而导致了一系列的问题。为了避免这类问题,设计者应当预留足够的空间来应对未来的...

    数据库物理模型设计

    在这个过程中,设计者需要考虑硬件特性、数据库管理系统(DBMS)的功能以及特定业务的需求。 在描述中提到,数据库设计实例常常基于四种基本模式构建。这四种模式是设计者通过长期实践提炼出的通用解决方案,旨在...

    数据库设计概论,介绍数据库设计的人物和特点、设计方法以及步骤

    而狭义的数据库设计则专注于根据特定需求设计数据库,包括概念结构、逻辑结构和物理结构。在本章中,我们将重点讨论后者,即如何构建一个满足信息需求和处理需求的数据库。 数据库设计的主要步骤包括五个阶段:需求...

    数据库的设计过程的介绍

    数据库的设计过程是一个复杂而关键的任务,它涉及到一系列的步骤,以确保最终的数据库能够有效地满足用户的需求,并且具有良好的性能和可维护性。这个过程通常包括需求分析、概念设计、逻辑设计和物理设计四个主要...

    通讯录 数据库课程设计

    通过合理设计数据库结构和编写SQL查询语句,可以实现高效的数据操作。 #### 结束语 综上所述,通过本次课程设计的学习和实践,学生不仅能够掌握数据库系统的设计与开发流程,还能深入了解如何运用Java和SQL Server...

    数据库系统设计全面介绍

    这种方法依赖于设计者的经验和直觉,缺乏科学理论和工程方法的支持,导致数据库设计质量不稳定,后期维护成本高。 #### 规范设计法 采用规范设计法,遵循迭代和逐步求精的原则,可以提高设计质量和效率。其中,...

    多级目录的数据库设计

    在数据库设计中,我们需要有效地映射这种层次结构到关系型数据库模型,以便于数据查询和操作。 在设计多级目录数据库时,有几种常见的方法: 1. **自连接表法**:创建一个单一的“目录”表,该表包含目录ID、目录...

    收费停车场管理系统数据库设计_数据库课程设计论文

    为了改善这种状况,设计一个高效、智能的收费停车场管理系统变得尤为重要。 #### 二、需求分析阶段 ##### 2.1 需求分析的目标与任务 需求分析阶段是整个项目的基础,其目标在于明确用户的具体需求以及停车场管理...

    数据库设计60个技巧

    ### 设计数据库之前的考量 #### 考察现有环境 设计新数据库前,深入了解业务需求及现有系统至关重要。通过分析当前系统,可以发现潜在的问题与需求,为新系统的构建提供依据。例如,对已有工作流程的了解有助于...

    数据库主键的五种设计方法

    数据库主键设计的五种方法 数据库主键设计是数据库设计中一个非常重要的环节,好的主键设计可以提高数据库的性能和可扩展性。...在选择主键设计方法时,我们需要考虑项目的实际情况和需求,选择最适合的方法。

    10数据库设计需求分析.ppt

    这种方法依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证,常常是数据库运行一段时间后又发现各种问题,这样再重新进行修改,增加了系统维护的代价。 规范设计法是目前公认的比较完整...

    微博数据库设计 设计网站数据库

    通过对用户表、状态表、私信表、关注表等多个关键表格的合理设计,可以有效地支撑微博系统的各项功能需求。此外,针对大数据量下的时间排序查询和数据冗余问题,还需要采取相应的优化措施,以保证系统的稳定性和性能...

    房地产数据库设计

    在这种背景下,房地产数据库的设计与开发显得尤为重要。它不仅能够有效地管理和更新海量数据,还能提高工作效率,更好地服务于房地产市场的各种需求。 #### 二、课程设计目标与要求 ##### 1. 设计目标 - **需求...

    关于用户权限的数据库设计

    而为了将这种方法应用于数据库,结合中国古老的“盈不足术”和超递增序列的魅力,可以解决权限字符串可能带来的弱势问题。特别是,利用超递增序列的特性,可以进一步提高权限判定的效率。 在权限值的存储上,一个...

    数据库原理与设计

    数据库设计是构建数据库系统的过程,包括需求分析、概念设计、逻辑设计和物理设计等阶段。 **6.2 需求分析** **6.2.1 需求分析的任务** 需求分析的目标是明确用户的业务需求和技术需求。 **6.2.2 需求分析的基本...

    数据库优化设计方案

    这种设计有以下优点: 1. **减少冗余数据**:消除多余信息,节省存储空间。 2. **增强数据完整性**:通过主外键和主键约束保证数据的完整性和一致性。 3. **提高查询效率**:减少逻辑和物理I/O,提高查询性能。 4. ...

Global site tag (gtag.js) - Google Analytics