客户名字太普遍,敲订单时链接客户数据,却找不出是哪一个人下的单?如果不希望你的数据库用户陷入这种窘境,表单设计时,记得设一个拥有“独特值”(Unique Value)的字段,例如客户编号(流水号),让每一个同名同姓的客户都可以被认得出来!
在我们讨论的情境下,“独特值”就是“就是指“在某个范围内没有重复、独一无二的值”。
在 Ragic 的表单设计“独特值”,意思就是该表单某个字段的字段值要是独一无二、不重复的。最常见的“独特值”是流水号,在 Ragic 可以用自动生成字段值来达到。不过只要是独一无二的值,自行编码或自行输入也可以,在 Ragic 你可以把字段设为“不可重复”属性来确保不输入重复的值。
一般来说,我们要求要是“独特值”的字段,会是数据库/数据表( Ragic 的一张表单)中,用来辨认每一笔数据的依据,这个依据也称为数据表的“ Key 值”。
举例来说,一张商品数据表单中有 100 笔商品数据,此时光从“库存数量”字段的字段值( 5 个? 10 个?),或是“颜色”字段的字段值(白色?红色?),我们看不出这是哪一笔数据,通常得从“商品编号”或“商品名称”的字段,才能辨认这其实是哪一笔数据/哪一个商品。
假如今天要管理商品数据的是一家小文具店,原本只有进 A 型号的铅笔,店家在商品表单的“商品名称”字段将 A 型号铅笔记载为“铅笔”,之后进 B 型号的铅笔时没注意,又创建了一笔商品名称同样是“铅笔”的数据,那么店员在表单中以“商品名称”为依据,搜索/筛选 A 型铅笔时,就会找到两笔数据,分不出谁是谁;卖出一支 B 型号铅笔时,也会不知道在哪一笔扣库存数量。
因此,作为数据辨认、比对基准的“独特值”,应该要是独一无二、不可重复的。以前面的例子来说,第一种调整方法就是“商品名称”改成“ A 型铅笔”、“ B 型铅笔”,让“商品名称”都是“独特值”,而第二种更便于管理的方法,就是另外把以流水号生成的“商品编号”字段当 “独特值”,找商品和扣库存时都以商品编号为依据,人为失误的概率就更小了。
这个辨认的依据不只是要给用户看,很多时候也是要让计算机在运行我们希望的自动化任务——例如叫出某笔数据、找出某笔数据的某个字段、更新某些条件的数据——时,能够根据“独特值”来比对数据。
设计链接与加载关系时,当你点选“链接字段”时,就像要从一个菜单里选出一个“选项”(在此情境菜单=链接加载的来源表单),如果菜单里出现两个一样的选项(“非独特值”),点选数据的人就会难以判断,因此我们会建议链接字段要是“独特值”(扩展阅读可以参阅这里)。
备注:如果原本已用“非独特值”字段,创建了链接与加载关系,之后希望修改的话,请用这个方法拖曳改变参照字段。不需要将原本的链接关系删除重建(删除重建比较容易损失原本的链接字段数据)。
当你准备将 Excel 或 CSV 檔的数据汇入 Ragic 时,第一栏通常得放上一个“独特值”字段。
从外部将数据汇入 Ragic 时,可以选择要单纯的将所有数据单击照字段倒进去(生成新纪录),或是逐一比对汇入表单中原本有的数据,只汇入该表单没有的数据,不汇入重复的数据。此时,系统需要比对哪笔数据是哪笔数据,因此就需要“独特值”。
例如“更新别张表单字段值”,需要去比对要更新另一张表单的哪笔数据。
基本上,我们会建议无论如何,尽量都在表单中创建一个“独特值”字段,用不上的话没有坏处,但有需要却没有的话却会很麻烦。
在决定表单的“独特值”字段时,请记得“整张表单该字段都没有重复值”才叫“独特值”,如果不确定哪个字段值可以当“独特值”字段,你可以在列表页上,在该字段使用加总与分析功能,如果每个字段值的笔数都是 1 ,就代表是“独特值”。用这个方法也可以检查重复值。
不过要注意,大多时候数据会是随时新增 / 变动的,某个字段现在在你的表单里是“独特值”,不代表你之后一定 100% 不会新增重复数据,因此加总与分析找出可能的“独特值”之后,还是要搭配实际流程以及适当的检核机制(例如“不可重复”属性)才能决定。