我试过四处寻找,但我不太确定如何正确地提出这个问题,一无所获。可能是重复的。
托管将两个对象从单独的表链接在一起的数据的最佳方式(最有效的方法)是什么?让我举个例子来解释一下;有一个名为Users
的表和另一个名为Groups
的表,用户可以是一个组的一部分。我该如何保存用户所在群组的信息。
我应该:
将Users
表保留为空,并在Groups
表中的组下放置一组用户ID。
将Groups
表保留为空,并在Users
表中的用户下放置一组group id。
在两个表中的用户ID和组下放置用户ID和组ID的数组。
我们将举例说明两个信息位(组X中的用户和用户X中的组)将以相等的方式轮询,两者都以相同的方式访问。此外,还有多个用户组。
我的设计部分告诉我应该使用解决方案2,它似乎是更漂亮的方式。但我认为解决方案1会更快(1到2之间),因为用户多于组。当然,解决方案3将是最快的,但它将需要更多内存,并且它更难管理(如果程序存在错误,一个表可能具有与另一个表不同的信息)。
我知道这些决定只能获得微小的时间或记忆,但我喜欢微优化,所以你会推荐什么?也许还有另一个我不知道的解决方案?
答案 0 :(得分:1)
如果用户可以属于零个或多个组,则执行此操作的标准方法是使用参考表:
Users Table:
UserId
UserName
...Etc
Groups Table:
GroupId
Name
...Etc
User_Groups Table:
UserId
GroupId