我正在考虑创建一个简单的游戏,以帮助我了解数据库设计和 CakePHP。原因是游戏最终应该是可扩展的,这应该由 MVC 提供。
但是,我正在努力理解正确的数据库设计,例如:
我有一个用户表,只包含常用的详细信息等。
游戏中的每个用户都会有一个军械库(存储武器),所以我的理解是用户和军械库表共享“有”关系。
我的问题是外键应该放在哪里?如果有的话?我应该在 User 表中有一个 Armoury 外键,还是在 Armoury 表中有一个 User 外键。或者我应该有一个完全不同的表来表示两者之间的关系?
此外,无论采用哪种方法,我如何在 CakePHP 中关联数据库的结构?
最佳答案
首先,您应该记住 cakePHP cookbook ,它会对您有所帮助,尤其是如果您刚刚开始,那么您将接触到约定、MVC...
我从最后开始,在CakePHP中,表之间的关系与模型有关(是的,ModelViewController,第一个)。
如果armory本身具有足够的逻辑来成为模型,那么User和Armory之间的关系将是User hasOne Armory。但是,例如,如果一个用户可以拥有多个军械库,则该用户可能拥有多个军械库。我不知道你的情况,只是猜测。
关于外键,有一些非常重要,因为一旦你有了数据库,你就可以“烘焙”(cake 为你生成代码)你的模型、 View 和 Controller 。您可以使用数据库的信息来完成此操作。
所以,我想说,如果一个用户有一个军械库,你应该在你的军械库表中放置一个 user_id 字段,以查看这个军械库属于谁。
希望它能有所帮助,我对 cakePHP 没有经验,但这是基础知识。我强烈建议您至少阅读这本食谱最重要的部分。
阿尔夫。
关于mysql - 简单的数据库注意事项和 CakePHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5311190/