0

我正在构建这个游戏门户,我有一些数据库问题。目前我有大约 10 个表,但我认为当我完成编程时它们会超过 20 个。无论如何,我想在不同的表之间创建某种关系(有点像 WordPress)。该表将包含表 A 中的一行与表 B 中的一行的任何关系。我想出的是以下内容:

表关系

| rs_id | rs_type | rs_alpha | rs_beta |

rs_id -> 只是一个 id
rs_type -> 关系类型
rs_alpha -> 相关表 #1 和行 id
rs_beta -> 相关表 #2 和行 id

例子:

| 1 | cover | games:153 | images:318 |
| 2 | tag | news:183 | tags:18 |
| 3 | group_admin | users:918 | group:75 |
...

这可能只是这样做,但这是我的担忧: 1. 该表将增长得如此之快,以至于很快就会有超过 100,000 行,这将减慢加载时间。2. 要提取信息,我必须分解每个调用,这可能会减慢加载时间。3. 我可能会将表名与 id (rs_alpha, rs_beta) 分开,但这也可能会减慢加载时间。

谢谢你,我愿意接受任何其他可能比这个更好的解决方案:)

如果你有时间,你可以从这里下载我的数据库结构,看看它是什么样子的:demirevdesign.com/public/pcanvil.sql.gz

(addon_ 表将成为关系表)

4

1 回答 1

0

据我了解,关系类型本身定义了所涉及的表,因此不需要存储表名。
此外,如果您重构架构并为可能涉及关系的所有实体添加一个公共父表,您根本不需要关心表名,您只需存储该新表的 id。

最后,关系总是有开始日期并且可能有结束日期,我建议将此属性添加到relationships表中。

至于性能,如果不了解您将如何查询表,就很难回答。我想通常按关系类型列进行分区将是有益的

于 2012-11-17T15:10:47.110 回答