第四维度学习基础知识
4D 平台(最初为 4th Dimension,至今以其历史名称而广为人知)将整个应用程序的数据存储在单个结构化数据文件中。了解表如何融入该架构是您将构建的其他所有内容的基础:字段、表单、值列表,以及最终驱动真正业务应用程序的查询和方法。本节将逐步介绍您创建第一个表、打开其属性并正确命名它,同时解释每个步骤背后的原因,以便您可以自信地将其应用到更大的设计中。
要点
- 在 4D 中,所有表都位于一个数据文件中,而不是像 FileMaker Pro (FMP) 中那样位于单独的文件中。这种单文件模型对于 4D 如何处理备份、部署和多用户访问至关重要。
- 4D 数据库 最多支持 256 个表,每个表最多包含 2 GB 数据或大约 1600 万条记录。
- 在设计模式下,您可以从结构菜单创建表。
- 要打开表的属性,您必须专门双击表名称区域 - 单击“结构”窗口中的其他位置将不会打开属性对话框。
- 表属性窗口有三个选项卡;默认值对于第一个项目来说是安全的,并且表名称可以随时更改。
- 命名约定很重要:在构建表单和关系之前,选择清晰、单数或复数一致的名称,例如“Customers”。
为什么表在 4D 数据模型中很重要
如果您有 FileMaker Pro 背景,那么思维转变就很重要。在 FMP 中,每个表过去都位于其自己的文件中,并且关系是跨文件管理的。在 4D 中,架构有所不同:所有表都存储在单个数据文件中。结构(您的设计 - 表、字段、表单、方法)与数据(用户输入的实际记录)分开保存,但您定义的每个表都位于该数据文件中。
此设计具有影响您工作方式的实际影响:
- 备份更简单。 由于数据是集中式的,您可以备份一个数据文件,而不是跟踪多个数据文件。
- 部署更干净。 您交付的是结构和数据文件,而不是充满相互依赖文档的文件夹。
- 内置多用户访问。 4D Server 管理对单个数据文件的并发访问,因此您不必自己设计文件锁定方案。
代价是数据文件成为单点增长。这正是 4D 对每个表施加限制的原因 - 最多 256 个表,每个表的上限为 2 GB 或大约 1600 万条记录。对于大多数小团队和部门业务应用程序来说,这些上限是慷慨的。但是,如果您正在设计将积累数百万个事务行的东西,您应该尽早考虑如何跨表拆分数据以及是否需要归档旧记录。
逐步创建表
在本演练中,我们将仅创建一个表,这使示例数据库易于理解。相同的过程可以扩展到许多表。
- 进入设计模式。 表创建是结构性更改,因此您必须处于设计模式。在用户模式下运行应用程序时无法添加表。
- 打开“结构”菜单。 从菜单栏中选择“结构”菜单。
- 选择“新建表”。 此菜单项向您的结构添加一个新的空表。
- 在“结构”窗口中找到新表。“示例数据库结构”窗口(原始演练中的图 6)显示您的表。新创建的表显示为未命名条目。
- 双击表名称区域。 这将打开 表属性 窗口(图 7)。
最后一步有一个值得重复的警告,因为它会让新手绊倒:您必须单击“表名称”区域,而不是其他地方。“结构”窗口包含多个区域,并且只有名称区域通过打开“表属性”对话框进行响应。如果双击时没有任何反应,则几乎可以肯定您点击了错误的位置 - 将光标直接移动到表的名称上,然后重试。
Related: — A spreadsheet-simple interface sitting on top of a real , with automations, views, and shareable interfaces..
了解表属性窗口
当“表属性”窗口打开时,您将看到三个选项卡。最初的指导是暂时将它们保留为默认值,这对于第一个项目来说是合理的建议 - 但它有助于了解您要推迟的内容。
- **表名称字段在每个选项卡上保持可见。**这是一个经过深思熟虑的设计选择:无论您正在查看哪个选项卡,您都可以重命名表。您可以随时更改名称,因此名称永远不是永久的。
- 其他选项卡控制结构行为 - 例如表如何参与更广泛的数据库以及如何管理其记录。对于单表样本,这些都不需要调整。
这里要养成的重要习惯是克制。新开发人员经常会打开属性对话框并开始切换选项,然后才了解每个选项的作用。在 4D 中,与大多数关系数据库设计一样,最安全的路径是接受默认值、获取工作表,并仅在具体要求迫使您这样做时才重新访问高级设置。
命名注意事项
对于示例数据库,将第一个表命名为 “Customers”。 这是一个小决定,但会产生巨大的下游影响:
If you are shopping: — A that plugs into the wider Zoho suite and prices per user rather than per app..
- 在复数方面保持一致。 如果您将此表命名为“Customers”,请将下一个表命名为“Orders”和“Products”,而不是“Order”和“Product”。一致性使关系和代码更容易阅读。
- 尽可能避免空格和特殊字符,因为表名称经常出现在代码和生成的查询中。
- 根据实体命名,而不是根据屏幕命名。 “客户”描述了一个事物; “CustomerEntryScreen”描述了一个表单。将这些概念分开。
输入名称后,单击“应用”,然后使用左上角的框或“完成”按钮关闭窗口。您的表现在存在于结构中并准备好接收字段。
表如何与数据库的其余部分相适应
表只是容器。应用程序的其余部分以清晰的顺序构建在它之上,在继续之前值得先了解整个情况:
- 数据字段 定义列 - 您存储的实际属性,例如客户的姓名、地址或帐号。
- 表单是用户界面:人们查看和编辑记录的屏幕。
- 值列表(选择列表) 通过提供预定义选项来限制和加速数据输入。
- 示例数据让您可以在上线之前测试包含真实内容的表单和列表。
其中每一个都取决于首先存在的表。这就是为什么 4D 的设计工作流程故意排序:结构先于界面,界面先于数据。如果您尝试在基础字段存在之前构建表单,那么您将没有任何可绑定的内容。
它还解释了为什么单数据文件模型如此重要。由于每个表、字段和记录都存在于一个协调的结构中,因此 4D 可以在整个应用程序中强制执行关系和引用完整性,而无需您管理外部文件。这与关系数据库管理系统背后的原则相同——这个概念在 E. F. Codd 的关系模型中得到了形式化,现在已成为 Oracle 数据库、Microsoft SQL Server 和 PostgreSQL 等产品的标准。 4D 将这种关系思维应用到一个独立的应用程序文件中,这使得它对于小型团队和公民开发人员来说很容易上手。
扩展到一张表之外的实用指南
为了清晰起见,该示例使用单个表,但真正的应用程序很少就此止步。添加表时,请记住以下条件:
| 考虑 | 检查什么 | 为什么这很重要 |
|---|---|---|
| 表数量 | 远低于 256 个表的限制 | 留出余量并保持结构易于导航 |
| 单表大小 | 注意 2 GB / ~1600 万条记录的上限 | 大型事务表可能需要归档或拆分 |
| 命名 | 一致、基于实体、无特殊字符 | 影响代码可读性和关系清晰度 |
| 关系 | 有意定义表之间的链接 | 防止孤立或重复的数据 |
| 成长计划 | 尽早决定归档哪些内容 | 随着数据积累保护性能 |
一个有用的经验法则:为每个现实世界的实体(客户、订单、产品、发票)建模一个表,然后将它们与关系连接起来,而不是将所有内容都塞进一个宽表中。这反映了大多数数据库课程中教授的规范化原则,并随着应用程序的增长保持 4D 结构的可维护性。
要避免的常见错误
- 在“结构”窗口中单击错误的区域。 仅“表名称”区域会打开“表属性”。这是此步骤中最常见的障碍。
- **在不检查依赖关系的情况下稍后重命名表。**您可以随时重命名,但如果表单、方法或关系已经引用旧名称,您将需要更新它们。
- 忽略大小限制,直到为时已晚。 每个表 2 GB/1600 万条记录的上限虽然慷慨但有限。计划大容量表的归档。
- 在字段之前构建表单。 工作流程顺序的存在是有原因的 - 首先定义结构。
- **第一天就过度自定义属性。**默认值可以让您行动起来。当需求需要时更改它们,而不是之前。
常见问题
4D 数据库可以容纳多少个表?
4D 数据库最多支持 256 个表。每个表最多可容纳 2 GB 数据,即大约 1600 万条记录。对于大多数部门和小团队应用程序来说,这些限制绰绰有余,但大批量设计应该计划归档。
为什么我无法打开“表属性”窗口?
几乎可以肯定,您单击了“结构”窗口的错误部分。仅当您直接双击表名称区域时,“表属性”对话框才会打开。单击窗口中的其他位置不会执行任何操作,因此请将光标重新定位到表名称上,然后重试。
创建表后可以重命名吗?
是的。 “表名称”字段在“表属性”窗口的所有三个选项卡上仍然可见,因此您可以随时更改名称。请记住,如果表单、方法或关系已经引用旧名称,您将需要更新这些引用。
我需要更改任何表属性选项卡吗?
不适用于第一个项目。最初的演练建议保留默认值,这是一个很好的做法。这三个选项卡控制您不需要的结构行为,除非特定要求迫使您重新访问它们。
4D 表与 FileMaker Pro 文件有何不同?
在 FileMaker Pro 中,表历来位于单独的文件中。在 4D 中,所有表都存储在单个数据文件中,该文件集中了备份、部署和多用户访问。这是在两个平台之间移动时需要内化的关键架构差异。
我应该为我的第一个表命名什么?
对于示例数据库,将其命名为 “Customers”。 更一般而言,选择基于实体的名称,保持表之间的复数一致,并避免空格或特殊字符,因为表名称经常出现在代码和生成的查询中。
后续步骤
创建并命名第一个表后,您就拥有了应用程序所需的容器。下一步是定义数据字段 - 为表提供实质内容的列。从那里,您将为界面构建表单,连接值列表以加快数据输入速度,最后输入示例数据以端到端测试所有内容。每个阶段都直接构建在您刚刚创建的表上,因此在继续之前请花点时间确认它在“结构”窗口中正确显示。
Try FileMaker Free for 45 Days
The long-running relational database platform for teams that need custom apps on desktop, web, and mobile from a single file.