【问题标题】:MS Access Database ConfusedMS Access 数据库困惑
【发布时间】:2015-04-29 02:25:04
【问题描述】:

我正在为我们的狩猎俱乐部建立一个数据库,并在此过程中学习访问......哎哟

我希望数据库包含观察到的所有鹿及其位置,当用户输入数据时,它将显示为 buck/doe/fawn/unknown,并且他们还将输入观察到鹿的位置。该位置可以是位于物业不同位置的摊位,也可以是位于食品区的摊位。

这就是我感到困惑的地方,我到了这一点,真的只是不知道要遵循的最佳路径。我遵循了许多规范化技术并建立了关系。我正在使用一个表单 (frmEnterNewStand) 将支架添加到数据库中,我需要一个组合框,其中包含来自两个表的选项(tblProperty Sections for stands not located on food plots)和(tblFoodplots for stand on on食物地块)。但是想不出来那个。所以我尝试添加食物地块作为另一个条目,但事情开始变得混乱。

由于我是新手,我什至不知道要问什么正确的问题,但我只是想不出最好的方法来组织它,以便能够轻松输入数据然后轻松访问数据。

我知道我们将要执行查询以获取统计信息,即观察到多少鹿等等等等,我们还想查询食物图,例如在食物图 1 上看到了多少鹿,以及一天中的什么时间。我们还将跟上其他食物地块参数。

我一直在学习 Udemy 课程并且有几本书,但我的想法很糟糕,任何帮助都将不胜感激。

我将包含我们房产的示例地图,蓝色数字是房产的不同部分 (tblPropertySections),黄色 S 数字是 Stand 1、2 等,橙色 F 数字是 Food Plot 1、2 等.

还包括我目前所拥有的截图。我打算尝试发布图片,但我猜我至少需要 10 个声望点。

不知道我还需要提供什么,但我会提前说声谢谢 时间

谢谢 时间

【问题讨论】:

    标签: database ms-access relationships


    【解决方案1】:

    我认为你应该从简单开始,然后根据需要增加复杂性。

    根据我对该问题的阅读,主要结果是一个记录鹿目击事件的数据库。最简单的“数据库”只是一个列出目击事件和相关信息的表格。

    例如:

    ID, Date, Time, DeerType, Location, SeenBy, Comments
    1, 1/1/2015, 11:45pm, "Doe", "Behind the shed", "Garry Abblet", "After a few beers Garry went for a slash and saw a deer"
    

    从那开始,然后担心需要添加什么。我知道单个表并不是最令人兴奋的数据库,但您应该遵循最简单的解决方案通常是最好的理念。

    【讨论】:

    • 这实际上是我从单个表开始的方式,但后来我开始阅读有关数据库规范化和关系的内容,这就是它开始变得混乱的时候。正如你提到的,我可能不得不回到第一方,一次添加一点。
    • 我还在嘲笑你的 cmets
    【解决方案2】:

    访问表单本质上是表格的可视化表示。事实上,如果用户只是计算机,您将不需要用户界面,但可以通过代码管理处理(编辑、添加、保存、删除)。组合框表单控件是从其他表中选择相应数据所需的工具,特别是外键。

    正如您所指出的,摊位可以位于财产区或食品区。因此,在 tblStands 表中,您可以携带两个外键:Property Section ID 和 Food Plot ID。

    然后,在它们对应的 tblStands 形式上,ID 将被存储/限制在组合框中,其 RowSources 是对基础表的查询:

    SELECT id, PropertySectionName FROM tblPropertySections
    
    SELECT id, FoodPlotName FROM tblFoodPlots
    

    现在,计算机会知道要选择哪个 ID,但人类不知道,他们需要名称/头衔来帮助识别要选择的项目。幸运的是,组合框带有一个特殊的隐藏列功能,其中 ID 可以从视图中隐藏,但其相关名称会显示在表单上。但是,ID 存储在表中。当您选择和定位组合框时,您可以使用向导进行设置。

    手动或无向导方法,您在所选组合框的属性表中执行以下操作:

    格式选项卡

    Column Count: 2 (or any greater than 2 depending on RowSource query)
    Column Width: 0"; 1" (or any non-zero that fits into combo box's width)
    

    数据标签

    Control Source: PropertySheetID (or FoodPlotID)
    Row Source: (see above queries)
    Row Source type: table/query
    Bound column: 1 
    

    总而言之,用户将导航到 frmEnterNewStand 并通过输入一个组合框而不是另一个组合框来选择展台是在 Property Section 还是 Food Plot 上(根据需要留下标签说明,因为用户是人类)。

    【讨论】:

    • 非常感谢您的回复,我需要一些时间在接下来的几天内消化这个并与我所拥有的进行比较。
    • 在这样做时,我发现我有可能不需要的连接表,我正在阅读的书让我设置了它们,但现在我读到另一个来源说连接表主要用于多对多关系,即一个 buck 可以被许多猎人看到,而一个猎人可以看到很多 buck,所以 tblBucks 和 tblHunters 需要一个连接表,正确。
    猜你喜欢
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2011-10-27
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多