首先,让我描述一下业务问题:
销售代表每次调用电话时,都必须记录通话中发生的情况。这称为处置。但某些配置可以有子配置 - 这意味着如果他们选择了该配置,那么他们将获得进一步的项目列表以供选择。其中一些也有 child 的倾向。 (最多 3 级)。
业务需求不仅要捕获所选的最终配置,还要捕获中间配置。
如何在数据库中对此进行建模?
到目前为止,我们已经提出了一个如下所示的 Disposition_Map 表:
CREATE TABLE [dbo].[dispo_map](
[dispo_map_id] [int] IDENTITY(1,1) NOT NULL,
[parent_dispo_id] [int] NULL,
[child_dispo_id] [int] NOT NULL,
[dispo_map_type_id] [int] NOT NULL,
这确实有效,但对我来说似乎很复杂。
最佳答案
详细说明正确的注释,这里是使用外键的一个基本设置。因此,当您将记录插入 dispo_map
时,它必须包含映射到 dispo.dispo_id
parent_dispo_id
CREATE TABLE [dbo].[dispo](
[dispo_id] [int] IDENTITY(1,1) NOT NULL,
[dispo_map_type_id] [int] NOT NULL)
ALTER TABLE dbo.dispo
add constraint PK_dispo_id primary key(dispo_id)
CREATE TABLE [dbo].[dispo_map](
[dispo_map_id] [int] IDENTITY(1,1) NOT NULL,
[parent_dispo_id] [int] NOT NULL,
[dispo_map_type_id] [int] NOT NULL)
ALTER TABLE dbo.dispo_map
add constraint PK_dispo_map_id primary key(dispo_map_id)
ALTER TABLE dbo.dispo_map
add constraint FK_parent_dispo foreign key(parent_dispo_id) references dispo(dispo_id)
关于sql - 如何将多个 parent 映射到单个 child 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068937/