我正在创建一个具有组的系统。这些可以被认为是像Facebook组织。用户可以创建新的组。目前,我有以下类型的群组:具有Facebook类似组的系统的数据库设计
- 城市群 - 以某个城市为基础的群组。例如“伦敦买卖团体”
- 学校组 - 基于学校的组。例如“伦敦大学研究组”
- 兴趣组 - 不绑定到某个地点的组。例如“50多岁的针织组织”
未来会增加更多的组类型。每一组可以有不同的类型的选项,但各组具有相同的基本数据:
- 一种ID
- 甲创建者ID
- 甲名称
- 一个选项描述
我正在为这个数据库设计而拼命挣扎。我最初的想法是为不同的团体创建不同的表格。
例如有一张名为group
的表。该表具有id
,creator id
,name
,description
,member count
,timestamps
。
然后有其他表格来表示其他组,并将它们链接到group
。所以我有一个city_group
表,其中包含和id
,group_id
,city_id
。对于其他组类型也是如此。
我与此唯一的问题是interest_group
没有任何额外的数据,一个正常的group
。但为了能够只查询兴趣组,我认为创建一个interest_group
表可能很有意义。它只会有以下列:id
,group_id
,timestamps
...这似乎有点浪费,有一个表只是为了这个目的。
是否有我的解决方案,或者没有更好的办法来解决这个设计问题的任何问题?
你有一些预定义类型的团体?如果用户创建一个新组,会发生什么?它会成为一个利益集团吗?或者您是以后可以添加组的唯一一个? –
用户创建的群组为“城市群组”和“兴趣群组”。只有管理员可以创建“学校组”。未来还会有其他类型的团体,如代表运动队的“运动团体”等。 – BugHunterUK
有趣的问题你在这里。那些在这些小组中的成员呢?会不会有像用户表和用户和组之间的链接表? –