-
这种需求,应该如何设计数据库?5
需求:
用户可为自己的产品增加多种属性,属性用在产品添加、产品搜索、产品列表等功能上。
可对属性进行排序。
假设:
用户增加重量、金额、运费,3个属性。
添加产品、查询产品、产品列表,就可以显示他们,并且有较高的运行效率。
问题补充:其实主要就是由用户自己 预先设定N个属性,CURD的时候,可以用。
问题补充:昨天有个朋友给了个建议,EAV模型;和下面一个朋友的key=>value建议雷同;
但我对这样模型的查询却认为不太好啊…
问题补充:补充一下:我目前用了主表、属性表,关系是“一对多”,但如何用一个SQL语句输出、检索、排序?
这才是重点啊,我觉得这并不是一个特别初级的题目,求高手。2012年6月10日 17:56
6个答案 按时间排序 按投票排序
-
你使用什么数据库?
如果是关系型的:
首先你需要一个产品属性表来记录产品的属性,记录中应该包括属性中文名、对应数据库表、数据库字段名、是否排序,排序方式等等信息。然后用户在添加和删除属性时修改这张表的记录,同时自动动态增加、删除对应表字段。
如果是NOSQL的:
key-value查询这个不是问题吧
希望对你有帮助2012年6月11日 16:31
-
预先设定?那如果很多个产品,都预先这么多字段,这么多的产品表怎么维护?一大堆莫名其妙的字段很恶心。
之前做过资源模型。通过动态配置并执行alter table增加字段,CURD的时候也是动态语句,应该就可以了。不知是否有更好的方案2012年6月11日 09:58
相关推荐
在选择数据库时,应根据具体需求权衡利弊,例如小型企业应谨慎考虑NoSQL,因为它可能需要更高的硬件配置。NoSQL并非万能,但对需要处理大规模数据和高并发请求的大型项目而言,NoSQL常常是不可或缺的解决方案。
- 数据量的增长是不可避免的,因此在设计数据库时应该考虑到这一点。例如,Y2K问题之前,很多系统都因为没有考虑到未来数据的增长而导致了一系列的问题。为了避免这类问题,设计者应当预留足够的空间来应对未来的...
在这个过程中,设计者需要考虑硬件特性、数据库管理系统(DBMS)的功能以及特定业务的需求。 在描述中提到,数据库设计实例常常基于四种基本模式构建。这四种模式是设计者通过长期实践提炼出的通用解决方案,旨在...
而狭义的数据库设计则专注于根据特定需求设计数据库,包括概念结构、逻辑结构和物理结构。在本章中,我们将重点讨论后者,即如何构建一个满足信息需求和处理需求的数据库。 数据库设计的主要步骤包括五个阶段:需求...
数据库的设计过程是一个复杂而关键的任务,它涉及到一系列的步骤,以确保最终的数据库能够有效地满足用户的需求,并且具有良好的性能和可维护性。这个过程通常包括需求分析、概念设计、逻辑设计和物理设计四个主要...
通过合理设计数据库结构和编写SQL查询语句,可以实现高效的数据操作。 #### 结束语 综上所述,通过本次课程设计的学习和实践,学生不仅能够掌握数据库系统的设计与开发流程,还能深入了解如何运用Java和SQL Server...
这种方法依赖于设计者的经验和直觉,缺乏科学理论和工程方法的支持,导致数据库设计质量不稳定,后期维护成本高。 #### 规范设计法 采用规范设计法,遵循迭代和逐步求精的原则,可以提高设计质量和效率。其中,...
在数据库设计中,我们需要有效地映射这种层次结构到关系型数据库模型,以便于数据查询和操作。 在设计多级目录数据库时,有几种常见的方法: 1. **自连接表法**:创建一个单一的“目录”表,该表包含目录ID、目录...
为了改善这种状况,设计一个高效、智能的收费停车场管理系统变得尤为重要。 #### 二、需求分析阶段 ##### 2.1 需求分析的目标与任务 需求分析阶段是整个项目的基础,其目标在于明确用户的具体需求以及停车场管理...
### 设计数据库之前的考量 #### 考察现有环境 设计新数据库前,深入了解业务需求及现有系统至关重要。通过分析当前系统,可以发现潜在的问题与需求,为新系统的构建提供依据。例如,对已有工作流程的了解有助于...
数据库主键设计的五种方法 数据库主键设计是数据库设计中一个非常重要的环节,好的主键设计可以提高数据库的性能和可扩展性。...在选择主键设计方法时,我们需要考虑项目的实际情况和需求,选择最适合的方法。
这种方法依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证,常常是数据库运行一段时间后又发现各种问题,这样再重新进行修改,增加了系统维护的代价。 规范设计法是目前公认的比较完整...
通过对用户表、状态表、私信表、关注表等多个关键表格的合理设计,可以有效地支撑微博系统的各项功能需求。此外,针对大数据量下的时间排序查询和数据冗余问题,还需要采取相应的优化措施,以保证系统的稳定性和性能...
在这种背景下,房地产数据库的设计与开发显得尤为重要。它不仅能够有效地管理和更新海量数据,还能提高工作效率,更好地服务于房地产市场的各种需求。 #### 二、课程设计目标与要求 ##### 1. 设计目标 - **需求...
而为了将这种方法应用于数据库,结合中国古老的“盈不足术”和超递增序列的魅力,可以解决权限字符串可能带来的弱势问题。特别是,利用超递增序列的特性,可以进一步提高权限判定的效率。 在权限值的存储上,一个...
数据库设计是构建数据库系统的过程,包括需求分析、概念设计、逻辑设计和物理设计等阶段。 **6.2 需求分析** **6.2.1 需求分析的任务** 需求分析的目标是明确用户的业务需求和技术需求。 **6.2.2 需求分析的基本...
这种设计有以下优点: 1. **减少冗余数据**:消除多余信息,节省存储空间。 2. **增强数据完整性**:通过主外键和主键约束保证数据的完整性和一致性。 3. **提高查询效率**:减少逻辑和物理I/O,提高查询性能。 4. ...