douyi1963 2016-09-16 16:40 采纳率: 0%
浏览 12

Laravel的正确关系

hello, sorry for my english. I will try explain my problem.

For example, we have model Product.

Each product has some options:

product_1 : option_1 = 50, option_2 = 14, option_3 = 23

Whats is the right way?

First - create database, like

id | title | option_1 | option_2 | option_3

Second - create models and tables, like

ProductModel hasMany optionModel 
OptionModel belongsToMany ProductModel

tables in databases: Product, Option, Product_Option_Relationships

Third - create some collection in function and table Product_Option_Relationships like

$options = collect([
  ['id' => '1', 'name' =>'option1'],
  ['id' => '2', 'name' =>'option2'],  
]);

Table: id | product_id | option_id

Or maybe exist normal way, because first - its too big table, when you have 20 options, second - create new model only for information function, i dont now, its normal? Third - too difficult in view show options name.

Thank you, i hope you understand me.

  • 写回答

3条回答 默认 最新

  • duanleiliu7373 2016-09-16 16:58
    关注

    Use the second way. You won't have repeated options. For example:

    products

    id | name
    ---|------
    1  | Car
    2  | Bike
    

    options

    id   |  name
    -----|------------
    1    |  Transport
    

    option_product

    option_id   |  product_id
    ------------|-------------
    1           |  1
    1           |  2
    

    Using the other ways, you would have the option Transport twice.

    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?