【发布时间】:2019-08-23 00:30:16
【问题描述】:
我在 Laravel 应用程序中有多个表,它们具有一对一的关系,例如 users、users_settings、user_financial
还有一些一对多的关系,例如users_histories
我的问题是:
1。我是否应该始终在开头添加增量 id?
例如,id 在下面的表 #2 中是必需的吗?
表 1:
id (primary,increments) , name, email, password
表 2:
id (primary,increments), user_id, something_extra
^ why does every guide include this? // e.g. https://appdividend.com/2017/10/12/laravel-one-to-one-eloquent-relationships/
我不能只使用 user_id 作为主键并跳过增量键吗?因为我想在表 1 中插入数据后立即将其自动插入到表 2 中。
2。我应该如何在 Laravel 中命名一对一和一对多 tables? `
我搜索了但没有找到任何不同类型关系的命名约定...
目前我这样做:
users 具有主键 id 的表是基础。
一对一: users_settings 外键 user_id
一对多: users_historiesforeign_key user_id
多对多: users_groupsforeign_key user_id
应该将前两个表命名为 settings/setting , histories/history 吗?对不起,我在这里有点困惑。
【问题讨论】:
-
恕我直言,如果你有一个 Eloquent 模型,你应该在模型表中有一个主键。如果您的表没有从 Laravel 的角度来看的模型,您可以做您想做的事,但主要是它的工作原理。你有 user_settings 的模型吗?如果是,你应该有一个主要的,如果不是,谁在乎。
-
@dparoli 谢谢,我搜索了很多,但没有找到我应该如何命名
1-to-1表,我应该将users_settings命名为settings还是user_setting或 @987654348 @?抱歉,我对 Laravel 上所有不同的命名约定有点不知所措。 -
如果模型是
UserSetting,则表格应为蛇形复数形式:user_settings,数据透视表应按模型字母顺序为蛇形形式的单数形式:role_user。你可以在这里阅读:webdevetc.com/blog/laravel-naming-conventions -
请注意,我说的是
primary key而不是incremental id的子集。你也可以查看这个问题:stackoverflow.com/questions/41655535/… -
@dparoli 我正在阅读链接,非常感谢