我有一个表,必须存在3个必需记录才能使使用此表的应用程序正常运行。例如,如果这是一个链表树表,在我的例子中,必须存在三个顶级组。当我开始使用此表时,所有未来的组必须始终在一个组下,并且不能创建其他顶级组。
Group TL1
Group A
Group AA
Group TL2
Group B
Group B1
Group B1B
Group TL3
Group C
注意必须始终存在组TL1,TL2和TL3,否则数据完整性会因应用程序的要求而中断。
插入/保护所需顶级组的最佳方法是什么?
我的一个想法是在创建表时插入所需的数据,并具有检查所需数据是否存在的函数。但是,我也不想总是检查它们的存在,因为它似乎过度且无效。
非常感谢您的回复。
答案 0 :(得分:0)
根据数据库的不同,您可以尝试以下方式:
1)有一个外键约束,如果它被破坏则阻止更新/删除 - 如果行A通过外键引用行重要,那么你不能删除行重要,因为数据库将检查约束并阻止它。
2)在删除/更新/插入之前运行一个触发器(根据需要),确保存在重要的行并阻止操作(或插入),如果它违反了这一行。
我会研究你使用的数据库风格的选项。