Ms access Ms访问表设计-列表或新表

Ms access Ms访问表设计-列表或新表,ms-access,database-design,Ms Access,Database Design,我有一张桌子: tblA ID = Autonumber Price = Number Name = Text 字段[Name]包含列表中的值。该列表有2-3个值 我将在列表中添加2个以上的值,因此总共5个值 什么对我的数据库性能更好。 要列出的字段或创建另一个表并将值放在那里?什么对数据库大小和速度更有利 New Design: tblA tblB ID = Autonumber

我有一张桌子:

tblA
ID    = Autonumber
Price = Number
Name  = Text
字段[Name]包含列表中的值。该列表有2-3个值

我将在列表中添加2个以上的值,因此总共5个值

什么对我的数据库性能更好。 要列出的字段或创建另一个表并将值放在那里?什么对数据库大小和速度更有利

New Design:

tblA                                   tblB
ID     = Autonumber                    NameID = Autonumber
Price  = Number                        Name   = Text
NameID = Number

多谢各位

查找表优于创建值列表

  • 查找表很容易维护,而as值列表有点硬编码,并且变得很困难,尤其是当列表逐渐增长时

  • 您可以在
    tblB
    中添加
    sort\u by
    数字字段,以便对列表进行自定义排序

  • 您可以在
    tblB
    中添加
    inactive
    Yes/No字段,轻松关闭任何值

  • 新的表设计将减少数据库大小,因为它避免了数据冗余

  • 将名称设置为tblB中的主键,它将自动创建索引并帮助加快速度。当数据库变得庞大或网络连接不良时,速度影响会更明显


  • 选择桌面,因为它易于维护和灵活。为了加快速度,您可以在字段上创建索引。如图所示的“新设计”未规范化。它将为价格创建重复的行。相反,1)消除
    tblA.NameID
    ;2) 将
    tblB.NameID
    字段替换为正常的数字长字段(不是自动编号),可能命名为类似
    tblA_ID
    的名称。这是主表的外键;3) 将表
    tblB
    重命名为
    [tblNames]
    (只是强调它所包含的内容)像Access这样的关系数据库的全部目的是创建多个规范化的表。规范化是指消除冗余值并将数据组织成有效关系所采取的步骤。这里列出的资源和有用的网页太多了,所以我建议在网上搜索“数据库规范化”。其中一些可能很难理解,但回顾多种解释并在实践中尝试将有所帮助。@Santosh将索引(在我的表格中标记字段(*)以索引)更详细,请将其作为我问题的答案。