Laravel:使用名称中的变量创建表

Posted

技术标签:

【中文标题】Laravel:使用名称中的变量创建表【英文标题】:Laravel: Create tables with variable in name 【发布时间】:2018-02-23 16:39:53 【问题描述】:

如何在 laravel 中创建和迁移大量名称中带有变量的表? 每次将新用户添加到名为“users”的表时,我都需要创建一个表“time-user_id”。

我如何才能意识到这一点以及Migrationfile/Controller/whatever 的外观如何?

谢谢!

【问题讨论】:

您想要创建多个表而不是将数据存储在具有user_id 列的单个表中的主要原因是什么? 我有一个名为 users 的主表,它存储姓名、出生日期等数据。现在我需要为每个用户创建一个表,我可以在其中存储诸如 CV 之类的内容。日期开始,日期结束, 城市等 您需要向表中添加行,而不是添加新表 嗯.. 但是我将拥有一张所有用户混合的巨型桌子?那么:user_id、begin、end 等?这样是不是很丑?建议我为每个用户制作一张桌子。但可能这是错误的.. 在这种情况下,我建议为您要存储的不同资源制作不同的表,例如user_csvs。对于 city 之类的东西(假设城市是用户居住的地方),您可以将其存储在 users 表中。 【参考方案1】:

“现在我需要为每个用户创建一个表格,我可以在其中存储诸如 CV 之类的内容。日期开始、日期结束、城市等”

听起来您需要另一个与 users 表 1:1 关系的表

您的新表格将类似于

tblFurtherUserInfo
FurtherUserInfoId
CV
DateBegin
DateEnd
City

您应该在此表中添加一个新行并将FurtherUserInfoID 设置为与您的用户表中的用户ID 相同。每当您向用户表添加记录时,您都应该这样做

编辑

现在我知道一个用户可以有多个简历,你需要一个新表如下

tblCV
CVId
UserId
CV
DateBegin
DateEnd
City

这是 1 个用户:多个 CV 关系

【讨论】:

好的.. 所以这会导致一张表混合所有用户的简历,对吧?并且数据可以稍后通过将FurtherUserInfoId与UserId进行比较来连接到用户? 好吧.. 1:1 的关系对我来说没有任何意义。也许用户 A 在他的简历中有三个站点.. 比如说学校、大学和工作.. 每个站点都有他开始的日期、结束的城市、他上学的地方、大学.. 和其他一些列.. 所以建议1:1 的关系没有任何意义。 问题中没有说明用户可能拥有不止一份简历,我会更新答案,但在这种情况下会像上面罗斯威尔逊建议的那样 这么简单的 1:n 关系?很抱歉,假设很明显你的简历中可以有多个站点。

以上是关于Laravel:使用名称中的变量创建表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中使用数据透视表中的 3 个关系创建关系?

Laravel 设置带有今天日期的模型表名称

如何创建数据透视表 laravel?

如何填充与laravel中的产品表链接的类别表

如何在R中的For循环中创建动态变量名称

动态表名称生成导致“找不到表”