代码之家  ›  专栏  ›  技术社区  ›  GibboK

数据库设计交钥匙记录

  •  0
  • GibboK  · 技术社区  · 14 年前

    我有一些关于简单CMS数据库设计的问题。

    表“PAGES”中的每一页都可以由特定的用户“AssignedTo”和“LockedBy”。 为了管理用户,我使用SQL特定的表“aspnet\u Users”,每个用户都使用一个GUI uniqueIdentifier列来标识。

    这里是我创建表“PAGES”时的脚本:

    LockedBy uniqueidentifier NULL FOREIGN KEY REFERENCES aspnet_users(UserId),
    AssignedTo uniqueidentifier NULL FOREIGN KEY REFERENCES aspnet_users(UserId)
    

    我的问题是: 这个设计会在“LockedBy”中产生很多空值,因为页面只有在编辑的时候才会被锁定,因为我听说在数据库设计中有很多空值不是一件好事,我想知道我的设计是否可行,或者你是否可以建议一个更好的方法。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Vidar Nordnes    14 年前

    通常我认为把它放在一个表中是个好主意,忽略了有许多空值的事实,但这里有另一个解决方案:

    您可以将其拆分为其他两个表:

    PageID、UserID<-唯一键

    页码分配至: