我注意到当我使用查询生成器时,我在不同的文件中写了很多数据库表名。如果我要更改数据库表名,我将不得不在我的项目中搜索和更改相当多的行。这是您的 Laravel 人员注意到并提出解决方案的问题吗?
我喜欢使用类模型而不是数据库名称的 Eloquent 方法;但是对于某些查询,我认为 Query Builder 是一个更好的解决方案(尽管我不是这方面的专家)。
是否可以使用迁移文件来更改列的“验证”元数据?我尝试了queryInterface.changeColumn方法,似乎它只能更改文档中提到的三个元数据(defaultValue,allowNull和type)。
我尝试在迁移文件的“ up”对象中执行以下操作:
queryInterface.changeColumn(
'tableName',
'columnName',
{
validate: {
is: /new_regex_validation/
}
}
)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行“ sequelize db:migrate”时,上述尝试对我不起作用
为了简单起见,我将使用表定义详细说明我的问题:
我正在尝试更改这样的现有表:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate: {
is: /some_regex_validation/
}
}
})
Run Code Online (Sandbox Code Playgroud)
使用sequelize迁移到此:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate: {
is: /a_new-or-different_regex_validation/
}
}
})
Run Code Online (Sandbox Code Playgroud)
或仅在使用顺序迁移时删除验证元数据:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false
}
})
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
javascript migration database-migration database-table sequelize.js
我有一张看起来像这样的桌子
+-------+------+------+----------+
| Index | F1 | F2 | Multiply |
+-------+------+------+----------+
| 0 | LG | SC | 1 |
| 1 | WE | CC | 1 |
| 2 | TY | PL | 2 |
+-------+------+------+----------+
Run Code Online (Sandbox Code Playgroud)
我想将'乘法'列乘以2来确定要添加到结果中的行数.通过上面的示例,我希望我的SQL查询返回:
+------+-----+-----+
|Index | F1 | F2 |
+------+-----+-----+
| 0 | LG | SC |
| 0 | LG | SC |
| 1 | WE | CC |
| 1 | WE | CC |
| 2 | …Run Code Online (Sandbox Code Playgroud) 我有如下登录日志表
Field Type
login_id int(10) NOT NULL
platform varchar(50) NOT NULL
browser varchar(50) NOT NULL
ipaddress varchar(50) NOT NULL
last_login datetime NULL
last_logout datetime NULL
Run Code Online (Sandbox Code Playgroud)
但是在这个结构上,我很困惑我可以添加登录时间,但很难在注销时间更新它。我没有添加主键,因为日志很频繁,主键很快就会达到最大值。最好的方法应该是什么?请帮忙。
我很少被我的测验应用程序的数据库设计所困扰.请指导我 -
我的应用UI将会是这样的 -

我的DB表 -
用户 -
user_id
user_name
user_email
user_password
user_registration_date
user_active
Run Code Online (Sandbox Code Playgroud)
问题 -
question_id
question_title
question_category_id
question_level_id
question_author_id
question_status
question_create_date
Run Code Online (Sandbox Code Playgroud)
类别 -
cat_id
cat_name
cat_author
cat_create-date
cat_status
Run Code Online (Sandbox Code Playgroud)
等级 -
level_id
level_name
Run Code Online (Sandbox Code Playgroud)
答案 -
?????????
Run Code Online (Sandbox Code Playgroud)
查询 -
我被困在答案表中data type.意思是我不确定在答案表中设置哪些列与此相关.
我的答案只会在选项格式中表示1,2,3,4选项或选项中没有文字类型答案的真假.只是选择选项.
请指导我,因为我坚持这个.
请在上面提到的表中表示是否有问题,并告诉我是否为单独的表创建了Level OK或者它是坏的(Level只会是 - Beginner,Intermediate,Advance).
我在rails应用程序上为ruby创建表时遇到问题.这让我疯狂!我尝试创建表时返回以下内容:
错误1(HY000):无法创建/写入文件'/usr/local/mysql/data/test_development/users.MYI'(错误代码:2)
值得一提的是,我是一个新手,顺便说一句.
希望有人能弄清楚我在这里做错了什么.任务似乎很简单,但显然超出了我的范围.
我有两张桌子,我正试图追加降水数据.需要在两个表中匹配三个条件以获得每个现场位置的正确降水数据,例如年,纬度和经度.我尝试使用以下查询(其他失败的查询,我甚至不记得了):
SELECT f.*, g.*
FROM fieldSites f LEFT OUTER JOIN gpcp_precipitation2 g
ON f.date = g.year
AND f.d_lat = g.lat
WHERE f.d_lon = g.lon;
Run Code Online (Sandbox Code Playgroud)
这一次超时了
和:
SELECT *
FROM fieldSites
INNER JOIN gpcp_precipitation2
ON (fieldSites.d_lon = gpcp_precipitation2.lon
AND fieldSites.d_lat = gpcp_precipitation2.lat
AND fieldSites.date = gpcp_precipitation2.year);
Run Code Online (Sandbox Code Playgroud)
这个也超时了.
我想转储到.csv文件,但是现在我只想执行一个成功的查询.
这是我的表格:
left table: fieldSites
siteId d_lat d_lon year data1 data2 country
1 -13.75 18.75 2009 0.598 0.351 Angola
1 -13.75 18.75 2008 0.654 0.330 Angola
1 -13.75 18.75 2007 0.489 0.381 Angola …Run Code Online (Sandbox Code Playgroud) 我需要将Joins用于项目,但我忘记了如何使用它.这一切都只是搞砸了我的脑袋,我无法弄明白.
我有五张桌子,所有这些都需要加入:
categories - id, name
movies_categories - movie_id, category_id
movies - id, title, description, release_date, cover_image
users - id, username, password
user_movies - user_id, movie_id, favorite, review, watch_date, rating
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,该项目与电影相关,而user_movies包含用户观看过的所有电影.我需要做的是获得某个用户观看过的所有电影.所以,我需要每部电影的所有电影信息,用户名(这几乎是用户需要的所有信息),以及user_movies中的一些列(除了前两个之外的所有列).我还需要将每部电影的所有类别合并为一个"变量".我相信你可以使用GROUP_CONCAT()来做到这一点,我以前做过.
这是一个棘手的任务,我真的需要了解这一点.如果有人能帮助我,我会很感激.
当一个表是外键时,表是否满足6NF?例如:
CREATE TABLE authors(
author_id serial NOT NULL PRIMARY KEY
);
-- other author attributes
CREATE TABLE books(
book_id serial NOT NULL PRIMARY KEY
);
CREATE TABLE books_author(
book_id int NOT NULL PRIMARY KEY REFERENCES books (book_id),
author_id int NOT NULL REFERENCES authors (author_id)
);
Run Code Online (Sandbox Code Playgroud)
如果不是,模型应如何处理外键关系?
如果M2M的关系,应该如何处理?连接表也应该是6NF吗?
我们有 2 个微服务:
服务_A、服务_B。他们都使用相同的数据库。今天我发现我们有不同服务使用的相同表的存储库。我记得我读到由于某种原因这是一个设计错误,并尝试用谷歌搜索该信息。但不幸的是我的搜索没有成功。您能解释一下这个问题吗?
也可能是我的错误。那么不同的微服务使用同一个表可以吗?
database-table ×10
database ×4
mysql ×4
sql ×3
join ×2
6nf ×1
criteria ×1
group-concat ×1
java ×1
javascript ×1
laravel ×1
migration ×1
php ×1
sequelize.js ×1
spring-boot ×1
sql-server ×1