我正在使用一个数据库,其中“几乎”数据库中的每个表具有相同的字段和相同的值。例如,几乎所有表都有一个名为GroupId的字段,现在数据库中只有一个组ID。
优势
缺点
这是一个大问题吗?这种方法有替代方案吗?
由于
答案 0 :(得分:0)
如果您将来需要能够识别多个组的数据,那么拥有外键是一种很好的做法。但是,这并不意味着所有表都需要具有此字段,只需要与该组直接相关的表。例如,具有状态值的查找表可能不需要它,但customers表可能。当你试图删除一条记录并且必须检查579个表(其中只有25个是相关的)时,它会毫不犹豫地将它添加到所有表中。所有这些在很大程度上取决于群体的意义。我们的大多数表都与客户端表有关系,因为它们包含与特定客户端相关的数据,因为我们不希望各种客户端能够查看其他客户端的数据。不包含这种数据的表不会。
是的,大多数查询可能需要该字段,并且许多存储过程将希望将其作为输入变量,但如果您确实需要对此信息进行过滤,那么就应该如此。
但是,如果只有一个组,并且永远不会超过一个组,则浪费时间,精力和空间。