我无法弄清楚如何构建它。这是我的应用程序:
这是一个游戏网站...说游戏是“单词搜索”、“数独”和“填字游戏”。
每个游戏都有很多谜题。所以有 100 个左右不同的单词搜索可以玩,100 个左右不同的数独游戏等等。
每个游戏也有许多模式。因此,每个单词搜索有 5 种左右的方法(定时、不定时等),5 种玩数独的方法等。
每个游戏模式拼图组合都有许多高分。因此,如果您定时玩 wordsearch #3,则会出现某个高分表。如果您玩同一个不计时的谜题,则会出现不同的高分表,如果您玩 #4 计时,则会出现第三个高分表,依此类推。
最后,每个高分都有一个用户。
我最初的制作方式是每个游戏都有很多谜题和模式,每个谜题都有很多高分,每个高分都有一个用户。正如您可能看到的那样,这没有多大意义,因为为什么高分属于拼图,而不是模式?当我显示高分时,我会显示游戏->拼图->高分,并添加高分模式=当前模式的条件。我没有理由需要有条件,因为关系很清楚。
所以这就是我所拥有的:
Game->Puzzle->Highscore->User
->Mode
我意识到构建这个的更好方法是与谜题和模式建立 HABTM 关系。所以每个游戏都有很多mode_puzzle,每个mode_puzzle都有一个mode,一个puzzle,还有很多highscore。
所以可以修改为:
Game (has many)->ModePuzzle (has many)->HighScore (has one)->User
(has one) -> Mode
(has one) -> Puzzle
这样做的问题是,现在当我想向游戏添加新模式或向游戏添加新谜题时,我必须处理这个我必须手动创建的繁琐新表,即使它应该可以在不创建整个新表的情况下建立这种关系。对于每款游戏,任何模式都可以搭配任何谜题,那么为什么我必须手动创建这个表格呢?
人们建议使用 bake 但从我所见 bake 自动生成模型,但我需要表本身自动生成。
我有一种感觉,解决方案与连接或其他东西有关,但我对 MySQL 连接或 cakephp 如何处理它们或类似的东西没有经验。人们还建议说每个拼图有很多模式,每个模式都有很多高分,但我不想这样做,因为每个拼图有很多模式或每个模式有很多拼图之间没有区别......而且我正在缓存整个结构,所以如果我必须为每个谜题重复每种模式,反之亦然,数组会变得很大。有没有人可以解决这个问题?