Database design 如何存储可以在具有层次结构的三个位置之一设置的数据
抱歉,如果这属于DBA-我不确定 我有3个实体:网站->商店->商店视图。我将有一系列的设置,可以存储在这3个级别中的任何一个。例如,我可以在一个网站级别设置一个主题,它将进入该网站下的所有商店,然后它可以在商店级别设置,这将反过来覆盖该网站。我需要将此信息存储在数据库中,但我不确定表示它的最佳方式 我想到了一些类似于以下列的表格的东西:Database design 如何存储可以在具有层次结构的三个位置之一设置的数据,database-design,data-structures,entity,Database Design,Data Structures,Entity,抱歉,如果这属于DBA-我不确定 我有3个实体:网站->商店->商店视图。我将有一系列的设置,可以存储在这3个级别中的任何一个。例如,我可以在一个网站级别设置一个主题,它将进入该网站下的所有商店,然后它可以在商店级别设置,这将反过来覆盖该网站。我需要将此信息存储在数据库中,但我不确定表示它的最佳方式 我想到了一些类似于以下列的表格的东西: 名称、值、EntityType、EntityId其中EntityType表示上述实体,而EntityId表示该实体内的Id。这将让我决定实体层次结构,并获得由
名称、值、EntityType、EntityId
其中EntityType
表示上述实体,而EntityId
表示该实体内的Id。这将让我决定实体层次结构,并获得由其排序的信息
这是一种可伸缩的方法吗?我似乎想不出一个更好的方法来做到这一点,它不涉及在数据库中有大量重复的列
编辑
我一直在研究继承的表,虽然我可以看到这对联系人/员工等共享共同属性(如FirstName、LastName等)的事情很有用,但我不认为这是一个好主意,因为你可能有很多字段。例如,如果我想实现一个消息处理程序,您可以在其中为每个网站/商店/商店视图设置用户消息,该怎么办?我需要为每条不实用的信息创建一个新专栏。我们有一个针对项目驱动型组织的ERP系统,具有类似的元素。例如,销售条件可以设置为:
PossibleProperties
的表与这三个实体中的每一个连接起来,从而生成PropertiesOfStoreView
、PropertiesOfStore
和PropertiesOfWebsite
如果您还希望能够配置任何对象上的每个属性,那么您就有了建议方法的业务案例。但这并不常见。在我们的项目控制系统中,我们只对草稿发票行(因为它们来源于流程、项目、收入、转换、时间表、您了解的情况)、文档(因为它们可以附加到许多表)和消息进行了此操作(因为许多表事件可以生成电子邮件或消息转发给外部消费者)
祝你好运!如果这个答案不能回答你的问题,请告诉我你遗漏了什么。如果是答案,请通过勾选空复选标记让我知道。抽象,宝贝。检查表继承。哦,听起来很有趣。可以,谢谢。