· 8 years ago · Aug 26, 2018, 04:28 AM
1Symfony: Loading fixtures of objects with multiple column primary key which are also foreign keys
2-- -----------------------------------------------------
3-- Table `mydb`.`MetodoEnvio`
4-- -----------------------------------------------------
5DROP TABLE IF EXISTS `mydb`.`MetodoEnvio` ;
6
7CREATE TABLE IF NOT EXISTS `mydb`.`MetodoEnvio` (
8 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
9 `nombre` VARCHAR(45) NOT NULL ,
10 `precio` DECIMAL(10,2) NOT NULL ,
11 PRIMARY KEY (`id`) )
12ENGINE = InnoDB
13DEFAULT CHARACTER SET = utf8
14COLLATE = utf8_general_ci;
15
16-- -----------------------------------------------------
17-- Table `mydb`.`ZonaEnvio`
18-- -----------------------------------------------------
19DROP TABLE IF EXISTS `mydb`.`ZonaEnvio` ;
20
21CREATE TABLE IF NOT EXISTS `mydb`.`ZonaEnvio` (
22 `id` INT UNSIGNED NOT NULL ,
23 `numero` INT(3) UNSIGNED NOT NULL ,
24 `etiqueta` VARCHAR(255) NOT NULL ,
25 PRIMARY KEY (`id`, `numero`) ,
26 INDEX `fk_ZonaEnvio_MetodoEnvio` (`id` ASC) ,
27 INDEX `numeroZona_INDEX` (`numero` ASC) ,
28 CONSTRAINT `fk_ZonaEnvio_MetodoEnvio`
29 FOREIGN KEY (`id` )
30 REFERENCES `mydb`.`MetodoEnvio` (`id` )
31 ON DELETE NO ACTION
32 ON UPDATE NO ACTION)
33ENGINE = InnoDB
34DEFAULT CHARACTER SET = utf8
35COLLATE = utf8_general_ci;
36
37-- -----------------------------------------------------
38-- Table `mydb`.`PrecioEnvio`
39-- -----------------------------------------------------
40DROP TABLE IF EXISTS `mydb`.`PrecioEnvio` ;
41
42CREATE TABLE IF NOT EXISTS `mydb`.`PrecioEnvio` (
43 `idMetodo` INT UNSIGNED NOT NULL ,
44 `zona` INT(3) UNSIGNED NOT NULL ,
45 `inicioRango` DECIMAL(10,2) NOT NULL COMMENT 'Marca el inicio del rango de peso para el cual este precio aplica.' ,
46 `finRango` DECIMAL(10,2) NULL COMMENT 'Marca el fin del rango de peso para el cual este precio aplica.' ,
47 `precio` DECIMAL(10,2) NOT NULL ,
48 PRIMARY KEY (`idMetodo`, `inicioRango`, `finRango`, `zona`) ,
49 INDEX `fk_PrecioEnvio_ZonaEnvio` (`idMetodo` ASC, `zona` ASC) ,
50 CONSTRAINT `fk_PrecioEnvio_ZonaEnvio`
51 FOREIGN KEY (`idMetodo` , `zona` )
52 REFERENCES `mydb`.`ZonaEnvio` (`id` , `numero` )
53 ON DELETE NO ACTION
54 ON UPDATE NO ACTION)
55ENGINE = InnoDB
56DEFAULT CHARACTER SET = utf8
57COLLATE = utf8_general_ci;
58
59-- -----------------------------------------------------
60-- Table `mydb`.`IntervaloMetodoEnvio`
61-- -----------------------------------------------------
62DROP TABLE IF EXISTS `mydb`.`IntervaloMetodoEnvio` ;
63
64CREATE TABLE IF NOT EXISTS `mydb`.`IntervaloMetodoEnvio` (
65 `idMetodo` INT UNSIGNED NOT NULL ,
66 `zona` INT(3) UNSIGNED NOT NULL ,
67 `intervalo` DECIMAL(10,2) NOT NULL ,
68 `precio` DECIMAL(10,2) NOT NULL ,
69 PRIMARY KEY (`idMetodo`, `zona`) ,
70 INDEX `fk_IntervaloMetodoEnvio_ZonaEnvio` (`idMetodo` ASC, `zona` ASC) ,
71 CONSTRAINT `fk_IntervaloMetodoEnvio_ZonaEnvio`
72 FOREIGN KEY (`idMetodo` , `zona` )
73 REFERENCES `mydb`.`ZonaEnvio` (`id` , `numero` )
74 ON DELETE NO ACTION
75 ON UPDATE NO ACTION)
76ENGINE = InnoDB
77DEFAULT CHARACTER SET = utf8
78COLLATE = utf8_general_ci;
79
80MetodoEnvio:
81 connection: doctrine
82 tableName: MetodoEnvio
83 columns:
84 id:
85 type: integer(4)
86 fixed: false
87 unsigned: true
88 primary: true
89 autoincrement: true
90 nombre:
91 type: string(45)
92 fixed: false
93 unsigned: false
94 primary: false
95 notnull: true
96 autoincrement: false
97 precio:
98 type: 'decimal(10, 2)'
99 fixed: false
100 unsigned: false
101 primary: false
102 notnull: true
103 autoincrement: false
104 relations:
105 TiendaOrden:
106 local: id
107 foreign: metodoenvio
108 type: many
109 ZonaEnvio:
110 local: id
111 foreign: id
112 type: many
113ZonaEnvio:
114 connection: doctrine
115 tableName: ZonaEnvio
116 columns:
117 id:
118 type: integer(4)
119 fixed: false
120 unsigned: true
121 primary: true
122 autoincrement: false
123 numero:
124 type: integer(4)
125 fixed: false
126 unsigned: true
127 primary: true
128 autoincrement: false
129 etiqueta:
130 type: string(255)
131 fixed: false
132 unsigned: false
133 primary: false
134 notnull: true
135 autoincrement: false
136 relations:
137 MetodoEnvio:
138 local: id
139 foreign: id
140 type: one
141 IntervaloMetodoEnvio:
142 local: id
143 foreign: idmetodo
144 type: many
145 IntervaloMetodoEnvio_2:
146 class: IntervaloMetodoEnvio
147 local: numero
148 foreign: zona
149 type: many
150 PrecioEnvio:
151 local: id
152 foreign: idmetodo
153 type: many
154 PrecioEnvio_2:
155 class: PrecioEnvio
156 local: numero
157 foreign: zona
158 type: many
159PrecioEnvio:
160 connection: doctrine
161 tableName: PrecioEnvio
162 columns:
163 idmetodo:
164 type: integer(4)
165 fixed: false
166 unsigned: true
167 primary: true
168 autoincrement: false
169 zona:
170 type: integer(4)
171 fixed: false
172 unsigned: true
173 primary: true
174 autoincrement: false
175 iniciorango:
176 type: 'decimal(10, 2)'
177 fixed: false
178 unsigned: false
179 primary: true
180 autoincrement: false
181 finrango:
182 type: 'decimal(10, 2)'
183 fixed: false
184 unsigned: false
185 primary: true
186 autoincrement: false
187 precio:
188 type: 'decimal(10, 2)'
189 fixed: false
190 unsigned: false
191 primary: false
192 notnull: true
193 autoincrement: false
194 relations:
195 ZonaEnvio:
196 local: idmetodo
197 foreign: id
198 type: one
199 ZonaEnvio_2:
200 class: ZonaEnvio
201 local: zona
202 foreign: numero
203 type: one
204IntervaloMetodoEnvio:
205 connection: doctrine
206 tableName: IntervaloMetodoEnvio
207 columns:
208 idmetodo:
209 type: integer(4)
210 fixed: false
211 unsigned: true
212 primary: true
213 autoincrement: false
214 zona:
215 type: integer(4)
216 fixed: false
217 unsigned: true
218 primary: true
219 autoincrement: false
220 intervalo:
221 type: 'decimal(10, 2)'
222 fixed: false
223 unsigned: false
224 primary: false
225 notnull: true
226 autoincrement: false
227 precio:
228 type: 'decimal(10, 2)'
229 fixed: false
230 unsigned: false
231 primary: false
232 notnull: true
233 autoincrement: false
234 relations:
235 ZonaEnvio:
236 local: idmetodo
237 foreign: id
238 type: one
239 ZonaEnvio_2:
240 class: ZonaEnvio
241 local: zona
242 foreign: numero
243 type: one
244
245MetodoEnvio:
246 personal:
247 nombre: Retiro Personal
248 precio: 0.0
249
250 mrw:
251 nombre: MRW
252 precio: 5.0
253
254 dhl:
255 nombre: DHL
256 precio: -1.0
257ZonaEnvio:
258 dhl_zona1:
259 MetodoEnvio: dhl
260 numero: 1
261 etiqueta: DHL (Envios en la Zona Metropolitana)
262
263 dhl_zona5:
264 MetodoEnvio: dhl
265 numero: 5
266 etiqueta: DHL (Envios al interior del pais)
267PrecioEnvio:
268 fila1_zona1:
269 ZonaEnvio: dhl_zona1
270 inicioRango: 0.00
271 finRango: 0.50
272 precio: 26.90
273
274 fila1_zona5:
275 ZonaEnvio: dhl_zona5
276 inicioRango: 00
277 finRango: 0.50
278 precio: 59.60
279IntervaloMetodoEnvio:
280 dhl_zona_1:
281 ZonaEnvio: dhl_zona1
282 intervalo: 0.5
283 precio: 3.05
284
285 dhl_zona_5:
286 ZonaEnvio: dhl_zona5
287 intervalo: 0.5
288 precio: 7.15
289
290SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`mydb`.`PrecioEnvio`, CONSTRAINT `fk_PrecioEnvio_ZonaEnvio` FOREIGN KEY (`idMetodo`, `zona`) REFERENCES `ZonaEnvio` (`id`, `numero`) ON DELETE NO ACTION ON UPDATE NO ACTION)
291
292MetodoEnvio:
293 MetodoEnvio_1:
294 nombre: Retiro Personal
295 precio: 0.0
296
297.
298.
299.
300 relations:
301 ZonaEnvio:
302 local: idmetodo
303 foreign: id
304 type: one
305 ZonaEnvio_2:
306 class: ZonaEnvio
307 local: zona
308 foreign: numero
309 type: one
310
311IntervaloMetodoEnvio:
312 dhl_zona_1:
313 ZonaEnvio: dhl_zona1
314 ZonaEnvio_2: dhl_zona1
315 intervalo: 0.5
316 precio: 3.05
317
318 dhl_zona_5:
319 ZonaEnvio: dhl_zona5
320 ZonaEnvio_2: dhl_zona5
321 intervalo: 0.5
322 precio: 7.15
323
324PrecioEnvio:
325 fila1_zona1:
326 ZonaEnvio: dhl_zona1
327 ZonaEnvio_2: dhl_zona1
328 inicioRango: 0.00
329 finRango: 0.50
330 precio: 26.90
331
332 fila1_zona5:
333 ZonaEnvio: dhl_zona5
334 ZonaEnvio_2: dhl_zona5
335 inicioRango: 00
336 finRango: 0.50
337 precio: 59.60
338
339ZonaEnvio: dhl_zona1
340ZonaEnvio_2: dhl_zona1