Mysql 类别属性的数据库模式混淆
这些是我的要求:Mysql 类别属性的数据库模式混淆,mysql,sql-server,database,database-design,Mysql,Sql Server,Database,Database Design,这些是我的要求: 每个类别都有多个组 每个组都有多个属性 每个属性都有多个值 到目前为止,我已经提出了这个数据库设计 类别组表 GroupID|CatID[参考类别(CatID)]|GroupName 类别属性表 AttributeID|AttributeName|GroupID[引用类别组(GroupID)]|AttributeValue 你们认为这是一个整洁的设计吗??有什么建议吗?除了命名第二个表GroupAttributes,因为它对类别一无所知,所以这是一个最常用的好方法。您有多个1:
GroupID
|CatID[参考类别(CatID)]
|GroupName
类别属性表
AttributeID
|AttributeName
|GroupID[引用类别组(GroupID)]
|AttributeValue
你们认为这是一个整洁的设计吗??有什么建议吗?除了命名第二个表
GroupAttributes
,因为它对类别一无所知,所以这是一个最常用的好方法。您有多个1:N(一对多)关系,并且以正确的方式引用了表。有没有理由不为您的四个概念使用四个表
Category: id, <category stuff>
Group: id, category_id, <group stuff>
Attribute: id, group_id, <attribute stuff>
Value: id, attribute_id, <value stuff>
Category:id,
组:id,类别\u id,
属性:id,组\u id,
值:id,属性\u id,
主键是id列
外键命名为(即attribute_id是attribute.id的外键)我现在主要关心的是如何批量上传数据??我的想法是,用户必须先选择类别,然后选择组,然后上传带有值的属性……对吗?插入批处理数据可能有点复杂。我指的是用户必须使用的GUI。如果您指的是单个组的批处理值,那么当然,这个工作流可以很容易地想象为GUI和代码。但是,当您希望允许为多个类别和组添加值时,GUI将变得非常复杂,很难看到。如果没有比用户界面更好的东西,那么它应该很容易使用,就像你说的。您还可以按名称搜索类别或组,以获取ID,并根据需要在层次结构中插入数据。您将按照您所说的那样执行..按组插入..再查询一次..知道如何在GUI中显示按组名称分组的属性吗??假设我有3个组…每个组下有5个属性..我如何在GUI中显示这一点..在组1>>>5个属性下..在组2>>>>>>>>5个属性下等等..有很多方法可以做到这一点,这取决于您愿意显示多少信息。例如,对于逗号分隔的值,可以从数据库GroupBy group中进行选择。要进行详细显示,您必须查询数据库中的组数。您还可以创建一个视图,合并所有信息,以便于搜索。