我无论如何都不是数据库设计师。我是一名桌面程序员,但我目前正在考虑实现一个需要(可能非常大的)后端数据库的网站创意。
在我的站点中,我将拥有可以创建和加入“组”的用户。用户的数量可能会更多,组的数量也可能更多,并且如果用户愿意,显然可以在多个组中。
我正在努力解决如何在数据库端正确定义它。
我可以创建一个包含所有组信息的“组”表,然后是另一个将每个用户与组相关联的表(因此该表中的每一行都有一个用户 ID,然后是一个组 ID,用户 ID 可以出现在多个行,因为用户可能在多个组中)。对于大量用户,这样的表会变得相当大,尤其是当用户涉及多个组时。
我的一个朋友建议为每个组准备一张单独的桌子。因此,每次用户创建组时,我们都会在数据库中创建一个表,然后用该组中每个用户的用户 ID 填充该表。我对此不太确定,因为为每个组创建一个新表似乎会带来很多开销。
此外,从桌面程序员的角度来看,我真的只想创建一个名为“Group”的类并为其提供一个用户 ID 数组……但显然我不能在关系数据库世界中做到这一点。
那么,我能做什么?设计这个的最佳方法是什么?什么将在服务器上最有效地运行?帮助启发想要学习一点数据库设计的程序员。:-)
谢谢!