你好朋友我有2个Mysql表,类别和category_Dates之间有1:N关系
类别:
ID Category Frequency
1 Cat A Half-yearly
2 Cat B Quarterly
category_Dates:
ID CatID Date
1 1 01-Jan-15
2 1 01-Jul-15
3 2 01-Jan-15
4 2 01-Apr-15
5 2 01-Jul-15
6 2 01-Oct-15
根据类别频率,我在category_date中自动输入记录数。例如 当类别频率=每季度时,我在category_date中输入4条记录,其中包含该类别的ID。日期将在稍后输入。
如果想要将频率从半年编辑到每年,我很困惑。如何更改记录数。请帮助您提出宝贵的建议。我正在使用带有mysql的laravel 4框架
答案 0 :(得分:1)
最好的方法是使用第3个表加入日期和类别。仔细看一下,你可以看到它的实际上是多对多的关系(N到N),因为1个类别可以有多个日期。一个日期可能是多个类别的一部分,比如说01-Jan-15
也属于第1类和第2类。
所以使用
类别表
id Category Frequency
1 Cat A Half-yearly
2 Cat B Quarterly
日期表
id Date
1 01-Jan-15
2 01-Apr-15
3 01-Jul-15
4 01-Oct-15
categories_dates 表
ID CatID Date_id
1 1 1
2 1 3
3 2 1
4 2 2
5 2 3
6 2 4
答案 1 :(得分:0)
如果更改“类别”表中的频率,请检索更新category_id, 从category_dates中删除所有CatId = category_id,然后在category_Dates中插入新条目。 希望这有帮助。 我假设你的模型是Category和CategoryDates。 让我们将类别ID 1从半年更新到季度
$query = Category::find(1);
$query -> Frequency = 'Quarterly';
$query -> save();
return $query -> id;
$catID = 1;
$query = CategoryModel::where('CatId',$catId) -> delete();
$data = ['CatId' => $catID,'date' => 01-Jan-15, ....];
CategoryModel::create($data);
当然假设您将新更新的类别ID返回给您的控制器并调用funtionn来在您的CategoryModel中进行更新。 希望这有帮助。