-2

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

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

将此信息存储在事务数据库中的最佳方式是什么?我应该使用一个表来存储主位置和子位置并只使用 aSelf Join来检索层次结构吗?

例子:

StoreID
Sub_StoreID
Store_Name

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

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

Primary_Location_Attributes,
Secondary_Location_Attributes,
Association_Primary_Secondary_locations

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

4

1 回答 1

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);
于 2013-11-03T23:58:57.183 回答