【问题标题】:Database Design - Name for this convention?数据库设计 - 这个约定的名称?
【发布时间】:2011-08-26 11:48:49
【问题描述】:

我正在尝试找出一种在 Entity Framework 中处理以下场景的好方法,但不知道使用的约定的名称,所以我很难找到结果:

基表

类别表:CategoryID, Name, ..., Active

网页表:网页ID、名称、...、活动

产品表:ProductID、名称、...、活动

链接表:LinkID、名称、...、活动

关系表

关系表:ID、CategoryID、ChildID、ChildTypeID、SortOrder

(ChildID 可以是 CategoryID、WebpageID、ProductID 或 LinkID。ChildTypeID 也标识了 ChildID 链接的表/类型)

我应该使用什么搜索词来查找有关此类关系的信息?有没有人有任何资源链接可能对在实体框架中处理这类事情有用?我正在考虑将关系表拆分为四个表,但要确保我不会为自己创建超出必要的工作量。

【问题讨论】:

  • 这是一个非常糟糕的结构。对于每种类型的关系,您应该有一个单独的关系表,以便您可以强制执行外键约束。这种结构更难查询,而且更有可能包含错误数据。
  • HLGEM,因此我的评论是关于考虑将关系表分成四个表。糟糕的结构在旁观者的眼中......有时你必须规范化、非规范化,并做一些与众不同的事情来满足你的特定需求。在这种情况下,要求是返回所有类别内容的分页和排序列表。 SortOrder 列并非特定于 ChildType,而是跨类别中的所有类型。

标签: mysql sql sql-server entity-framework


【解决方案1】:

在 Hibernate 中,它被称为继承映射。尝试在 Entity Framework 文档中搜索类似术语。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2011-11-19
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多