我正在建立这个游戏门户网站,我有一些数据库问题。目前我有大约10个表,但我认为当我完成编程时它们将超过20个。无论如何,我想在不同的表之间创建某种关系(有点像WordPress)。该表将保持表A中的一行与表B中的一行之间的任何关系。我想出的是以下内容:
表关系
| rs_id | rs_type | rs_alpha | rs_beta |
rs_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_ tables将成为关系表)
答案 0 :(得分:0)
据我所知,关系类型本身定义了所涉及的表,因此不需要存储表名 此外,如果您重构模式并为可能涉及关系的所有实体添加公共父表,则根本不需要关心表名,只需存储该新表的ID。
最后,关系始终有开始日期,可能有结束日期,我建议将此属性添加到relationships
表。
至于性能,如果不了解如何查询表格,很难回答。我猜通常按关系类型列进行分区将是有益的