mysql - 动态列的数据库设计
问题描述
我正在尝试设计一个数据库,用户可以在其中根据他们的销售量和商店中的可用性来设置不同产品的成本。用户只能为产品和可用性设置价格,但产品是由系统管理员为用户创建的。我尝试将数据库设计为具有三个表,一个用于产品,另一个用于用户,然后第三个是用于将用户链接到现有产品的模式,user_id
使用product_id
. 我无法做的是知道如何以及在哪里设置产品的价格属性
解决方案
如评论中所述,在您的情况下,使用数据透视表然后附加所有其他数据是 mysql 数据库的最佳选择,您可以使用 user_id 作为主键的 users 表,以 product_id 作为主键的 products 表然后创建一个模态表 product_user 以 product_id 和 user_id 字段为索引,成本为十进制,可用性或数量。在插入或更新期间,您将按如下方式使用附加
$userProduct = Product::where(['id'=>$data['product_id']])->first();
$userProduct->userProducts()->attach(User::where('id', $data['user_id'])->first(), ['amount' =>$data['cost'],'availability' =>$data['quantity']]);
在您的 Product 模型中,您将需要创建 userProducts() 函数来处理一对多关系
推荐阅读
- django - Django 上的实例不起作用,除了图片字段
- matlab - 如何即时修改音频信号?
- c - Linux 内核:AXI 互连,它在哪里以及如何处理?
- javascript - 无法使用 ACL 将文件上传到 DigitalOcean 空间,作为使用签名 POST URL 的公共读取?
- random - 如何获得一组随机数,其中单个数字只出现一次?
- python - GAN 从一开始就在训练中卡住了
- r - 从 R 获取给定形状文件的随机 lon 和 lat 坐标数据集
- azure - 要在 SAP 连接器中读取的字段传递的参数:读取 SAP 表(预览版)
- python - 找到相同字符串的重复字符串
- javascript - 搜索数组以查找峰值的最佳方法,无需拆分或创建新数组,javascript