mysql - 简单的数据库注意事项和 CakePHP

标签 mysql database model-view-controller cakephp

我正在考虑创建一个简单的游戏,以帮助我了解数据库设计和 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/

相关文章:

model-view-controller - 与Web应用程序中的三层体系结构相比,MVC有何优势?

asp.net-mvc - 如何在asp.net mvc 中创建一个弹出窗口?

mysql - 如何使用mysql搜索数组中的值?

php - 合并来自不同表的两个 SELECT 查询

php - 从数据库返回结果

java - 在 MySql 中合并两个 select 语句?

php - PHP 中的多步表单 - MVC 应用程序

mysql - 为什么这个 MySQL 查询不起作用?

javascript - 在带有辅助函数的 ejs 中使用 .then 返回 [ object promise ]

php - 让 PHP 在没有 GROUPING 的情况下查询 MySQL 的 COUNT()