gpt4 book ai didi

mysql - 最高效、可扩展的 mysql 数据库设计

转载 作者:行者123 更新时间:2023-11-29 23:53:51 25 4
gpt4 key购买 nike

我有关于数据库设计的有趣问题:

我提出了以下设计:

第一个表:

**Survivors:**

Survivor_Id | Name | Strength | Energy

第二个表:

**Skills:**

Skill_Id | Name

第三个表:

**Survivor_skills:**

Surviror_Id |Skill_Id | Level

在第一个表 Survivors 中会有很多记录,并且会不时增长。第二个表中只有幸存者可以学习的一些技能(例如:侦察(更高的视野范围),狙击手(更好的准确性),...)。这些技能不像所有幸存者都拥有的力量或能量。第三张 table 是最有趣的,有幸存者和技能结合在一起。一切都会很好,但我担心数据重复。

例如:id 为 1 的幸存者将拥有 5 种技能,因此第一个表将如下所示:

// survivor_id | level_id | level
1 | 1 | 2
1 | 2 | 3
1 | 3 | 1
1 | 4 | 5
1 | 5 | 1

第一条记录:ID为1的幸存者在2级拥有ID为1的技能第二条记录...

这是正确的方法还是我应该使用不同的方法。

最佳答案

我觉得不错。如果您担心数据重复:

1)您的服务器端代码应该防止这种情况发生

2)您可以在插入之前检查它是否已经存在

3)您可以使用 MYSQL:REPLACE INTO - 如果配置正确,这将替换重复的行,或插入新行( http://dev.mysql.com/doc/refman/5.0/en/replace.html )

4) 在您只需要唯一行的列上设置唯一索引,例如level_id,级别

关于mysql - 最高效、可扩展的 mysql 数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com