当前位置: 首页 > 面试题库 >

一个地址表可用于许多实体?

容阳焱
2023-03-14
问题内容

概念阶段问题:

我有几个表( 机构工厂 ),每个表有多种 地址邮件物理 地址

有没有一种方法可以创建一个包含 所有* 实体的所有 地址单个 地址表? *

我宁愿没有 PersonAddressFactoryAddress 等表集。

还有其他选择吗?

数据量最多只能是几千个地址,因此影响很小。


问题答案:

我的建议基于以下原则:一个实体(个人,机构,工厂等)可以有多个地址,通常是这种情况(家庭,企业等),并且一个地址可以由不同性质的实体共享:

CREATE TABLE ADDRESS
(
    ID INT IDENTITY PRIMARY KEY NOT NULL, 
    .... (your adress fields here)
    id_Person ... NULL,
    id_Institution ... NULL, 
    id_Factory ... NULL 
)

主要限制是2个不同的人不能共享相同的地址。在这种情况下,您将必须具有一个附加的“ EntityAddress”表,如下所示:

CREATE TABLE ADDRESS
(
    ID INT IDENTITY PRIMARY KEY NOT NULL, 
    .... (your adress fields here)
)

CREATE TABLE ENTITY_ADDRESS
(
    ID INT IDENTITY PRIMARY KEY NOT NULL
    id_Address .... NOT NULL,
    id_Person .... NULL,
    id_Institution ... NULL, 
    id_Factory .... NULL
)

最后一个模型允许您为在同一机构工作的多个人共享一个地址。

但是 :根据我的说法,“更好”的解决方案是将您的不同实体合并到一个表中。然后,您将需要:

  1. 为所有实体制作的实体表
  2. 实体类型表,其中将包含不同的实体类型。在您的情况下,您至少有3行:人员,工厂,机构

如果每个实体一个地址足够,则可以将地址详细信息用作实体表的属性。

如果您需要按实体分配多个地址,则必须使用地址表,并将Id_Entity作为外键。

如果要在多个实体之间共享一个地址,每个实体可能具有多个地址(实体和地址之间的多对多关系),那么除了实体表和地址表之外,您还需要使用EntityAddres表。

您可以在这些模型之间进行选择,具体取决于您的需求和业务规则。



 类似资料:
  • 我试着给多个URL全部许可,但我得到了403。当我禁用csrf时,所有请求都在没有身份验证的情况下工作。请在下面找到我的安全配置。 请指正我遗漏的地方。谢谢你...

  • 我有一个ip地址5.5.5.5,有两个主机名指向它。 从命令行 主机5.5.5-5 DNS.in-addr。arpa域名指针address1.test.com。 域名指针address2.test.com。 nslookup5.5.5.5 服务器:dns.test.com 地址:dns.test.com 非权威答案: DNS.in-addr.arpa名称=address1.test.com. DN

  • 问题内容: 我正在使用以下正则表达式模式 它将接受以下任何IP地址 但是我希望它应该接受逗号分隔的单个以及IP地址,如下所示 我必须在正则表达式中做哪些更改? 问题答案: 它慢慢变得难以理解,但是您在这里: ^(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \ d | 5 [0-5]))。(\ d | [1-9] \ d | 1 \ d \ d | 2([0-4] \

  • 问题内容: 我正在创建一个应用程序,该应用程序的核心功能是随着时间的推移跟踪各种数据(血糖水平,胰岛素剂量,食物摄入量等),并且试图确定如何最好地在数据库中组织这些信息。 从最基本的角度来看,在这个特定总括内的所有内容都是一个事件,因此我想到了一个带有包含所有可能出现的属性的字段的Events表。但是,这可能很麻烦,因为绝大多数字段最终对于许多字段都是空白。但我不确定这是否真的是一个问题。这种方式

  • 我学习数据结构和链表,但有些东西我不懂。一个对象怎么能存储这么多地址和数据。当我了解object时,我看到如果您想为一个变量存储许多数据,您需要创建新的对象,但现在在链表中,newNode对象将存储data1、next1、data2、next2,....大滩,下一个。 当程序运行list.insert(11)并且数据变为11时,为什么不删除原来为5的数据? 对不起,我的英语语法,任何反馈将被告知。

  • 在Firebase控制台中,我特别将其设置为只允许“每个电子邮件地址一个帐户”。这可以在“高级”下的“登录方法”选项卡上找到。 我有一个使用谷歌登录方法创建的帐户,它有一个类似“me@gmail.com”的地址。如果我选择通过Facebook使用一个也使用“me@gmail.com”的帐户登录,Firebase允许它,但用户实体中的电子邮件地址为空除外。 Firebase文档指出: 如果不允许使用