首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何恰当地命名数据库列

如何恰当地命名数据库列
EN

Stack Overflow用户
提问于 2020-12-18 03:47:50
回答 2查看 52关注 0票数 0

在excel文件中,我有这样的列: 11.01-12.00,12.01-13.00,.,29.01-30.00。列的内容是价格。我想将价格存储在MySQL中的许多范围,如excel列。

我是要做这样的桌子,还是你的人有更好的方法,请引导我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-18 04:42:41

一个选项可以是将列price_rangeprices定义为json列,并将数据存储为key=>value对,例如:‘11.01-12:00’> 11.50

在表的迁移文件中,添加一列

代码语言:javascript
运行
复制
$table->json('prices');

在模型类中,指定将prices列转换为数组。

代码语言:javascript
运行
复制
class MyModel extends Model
{
    protected $casts = ['prices' => 'array'];

    //... rest of the class code
}

通过指定强制转换,您现在可以使用关联数组在列上存储数据,您可以在php数组中存储和更新数据。

代码语言:javascript
运行
复制
$myModel = new MyModel;

$myModel->prices = [
    '11.01-12.00' => 11.50,
    '12.01-13.00' => 12.35,
    //...
    '29.01-30.00' => 29.82,
];

$myModel->save();

更新数据

代码语言:javascript
运行
复制
$myModel = MyModel::find(5);

$newPrices = [
    '11.01-12.00' => 11.20,
    '12.01-13.00' => 12.63,
    //...
    '29.01-30.00' => 29.05,
]

$myModel->update(['prices' => $newPrices]);

/OR to update price for a specific price range

$myModel->update(['prices->11.01-12.00' => 11.25]);

Laravel博士:

票数 1
EN

Stack Overflow用户

发布于 2020-12-18 04:02:12

在数据库表迁移文件中,定义一个名为price的列来保存您的值。

代码语言:javascript
运行
复制
$table->integer('price');

将您的价格存储为您的货币的最低分母,执行执行数据库内/出数据库转换所需的任何算法。

没有必要为不同的价格创建单独的列。

编辑1

基于您的问题更新,即该信息位于excel文件中,您将希望使用一个包,如Laravel Excel (没有重新发明轮子)来执行您的导入。

导入excel文件这里的很好的教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65351550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档