database - 帮助数据库设计

标签 database database-design

我有四个表:ItemCategory、Items、DiamondCategoy 和 Diamonds。

用户存储元素的详细信息并指定它是否有钻石,例如:

ItemCategory: Ring
Item: R1

如果有钻石那么:

DiamondCategory: Round
Diamond: D1

所以Ring的R1有Round的D1

一个项目可以没有钻石,例如:

ItemCategory: Ring
Item: R1
DiamondCategory: None
Diamond: None

我不知道如何设计关系。我想出了这个解决方案,如果我错了请纠正我。

元素类别:

c_Id >> PK

项目:

p_Id >> PK

c_Id >> FK

d_Id >> FK

钻石:

d_Id >> PK

dc_Id >> FK

钻石类别:

dc_Id >> PK

对吗?

最佳答案

如果一个 Item 和一个 Diamond 只能有一个类别,为什么你需要为它们单独的表格?只需将类别作为属性包含在您的 Item 和 Diamond 表中。

然后你有两个表,一个用于 Items,一个用于 Diamond,第三个表用作两者之间的查找表,并将存储 Item 的主键和相应钻石的主键它有。

关于database - 帮助数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358560/

相关文章:

database - 谁触发了我的扳机?

mysql - 数据库设计 - 多语言网站

model-view-controller - 现有的营养成分数据库?

mysql - 错误 1452 (23000) : Cannot add or update a child row: a foreign key constraint fails for existing tables

sql - PostgreSQL 中 JSON 数据类型的正确用例是什么?

MySql "comments"参数作为描述符?

database-design - 类表继承与非规范化

mysql - 如何合并两个具有相同架构且具有自动增量主键的sqlite3数据库

PHP/MySQL : Deleting data from DB

android - 如果我在另一台设备上安装该应用程序,是否仍然可以使用预制 ID 登录?