数据库设计建议位置和子位置

时间:2013-11-03 23:29:47

标签: mysql database

我正在设计一个支持POS功能的MYSQL数据库。假设有一个拥有多个地点(多个分支机构)的企业,每个地点都必须被识别为唯一但具有自己的税收,产品,产品组和产品子组,客户等的层次结构。

需要有一个主要位置,其他位置为子位置。

在事务数据库中存储此信息的最佳方法是哪种?我应该使用一个表来存储主位置和子位置,只使用Self Join来检索层次结构吗?

示例:

StoreID
Sub_StoreID
Store_Name

Sub_StoreID对于主要位置将为空白,而对于其他位置,它将存储ID

或者我应该选择两个表并在下面提到。我应该复制产品的所有表格吗?客户和其他人使其以更好的方式运作。

Primary_Location_Attributes,
Secondary_Location_Attributes,
Association_Primary_Secondary_locations

如果问题不清楚,请告诉我,以便我可以尝试以不同的方式解释。

1 个答案:

答案 0 :(得分:1)

不需要在另一个表中,您可以创建parent_id属性:

CREATE TABLE offices(
    id INT PRIMARY KEY AUTO_INCREMENT,
    parent_id INT REFERENCES offices(id),
    ...    
);

这将是父母或总部:

INSERT INTO offices (parent_id) VALUES(NULL);

这将是一个子办公室:

INSERT INTO offices (parent_id) VALUES(1);