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