我正在尝试创建一个mer图,对于具有以下逻辑的库存控制,我有10个相同型号的组件(10个acer 24监视器,具有相同的特性),唯一区别这些组件的是序列号,因此我有以下逻辑:但我不知道这些关系是否正确,特别是对于库存零件,在组件实体中添加序列号并创建10个库存记录是否正确?我很难为上述逻辑选择最佳路径。
xriantvc1#
在关系表示法中,每个关系都必须有一个主键,而在您的示例中: stock , component_has_component_category , user_has_components 别这样。要解决此问题,请在每个关系的主键中添加这两个字段。 components 另一方面,关系有一个无用的领域 id ,可以用主键替换 component_id + serial_number ,如果用户具有组件(通过外键引用)关系,则也是如此 user_has_components 将有两个字段 component_id + serial_number 这是合乎逻辑的,因为用户有一个特定的组件示例。假想关系 components_inventory 类似的,它有两个字段 component_id 以及 serial_number 同时是的主键和外键 components ,表示存在具有序列号的特定组件(在某种意义上 components_inventory 是的子集 components )编辑:我对数据方面的看法:
stock
component_has_component_category
user_has_components
components
id
component_id
serial_number
components_inventory
component | component_id | .. other stuff | | 1 | .. | | 2 | .. | components (all existent components and serial numbers) | component_id | serial_number | | 1 | 101 | | 1 | 102 | | 1 | 103 | | 1 | 104 | | 2 | 201 | | 2 | 202 | user_has_component (refers to components) | user_id | component_id | serial_number | | mary | 1 | 101 | | john | 1 | 104 | | john | 2 | 202 | category_inventory (refers to components, some components we have, but not users) | component_id | serial_number | location | | 1 | 102 | warehouse New York | | 1 | 103 | warehouse New York | | 2 | 201 | warehouse Paris |
1条答案
按热度按时间xriantvc1#
在关系表示法中,每个关系都必须有一个主键,而在您的示例中:
stock
,component_has_component_category
,user_has_components
别这样。要解决此问题,请在每个关系的主键中添加这两个字段。
components
另一方面,关系有一个无用的领域id
,可以用主键替换component_id
+serial_number
,如果用户具有组件(通过外键引用)关系,则也是如此user_has_components
将有两个字段component_id
+serial_number
这是合乎逻辑的,因为用户有一个特定的组件示例。假想关系
components_inventory
类似的,它有两个字段component_id
以及serial_number
同时是的主键和外键components
,表示存在具有序列号的特定组件(在某种意义上components_inventory
是的子集components
)编辑:我对数据方面的看法: