validatie ERD en tips voor stored procedures

Status
Niet open voor verdere reacties.

ricardo83

Nieuwe gebruiker
Lid geworden
25 jun 2016
Berichten
1
Ik wil via deze weg valideren of de ERD voor de onderstaande doelen voldoet.
In het ERD zijn alleen de fietsen zijn verzekerd.
Bij onvoldoende fietsen kunnen er geen fietsen worden omgewisseld en het emailadres dient uniek te zijn.

Moet ik bij een incorrrecte ERD een FK fiets_id toevoegen aan de entiteit verzekering of de relatie tussen verzekering -verhuur veranderen in verzekering-verhuur_has_fiets?

erd.png
- Gezien de vermelde eisen moet dan de entiteit verzekering gekoppeld worden aan de entiteit fiets om te voldoen aan de eis dat enkel de fietsen verzekerd zijn of is het toevoegen van een Forgein Key fiets aan verzekeringtabel voldoende?

Hoe creeër ik via een stored procedure het onderstaande;
 
Laatst bewerkt:
ERD ? afkorting van

dit is stored procedure
Ref: http://php.net/manual/en/pdostatement.fetch.php
het is php je moet maar kijken naar de querys met de code erbij kan je het testen.
Code:
  1 <?php
 2 $mysqli*=*new*mysqli("example.com",*"user",*"password",*"database");
 3 if*($mysqli->connect_errno)*{
 4 ****echo*"Failed*to*connect*to*MySQL:*("*.*$mysqli->connect_errno*.*")*"*.*$mysqli->connect_error;
 5 }
 6 if*(!$mysqli->query("DROP*TABLE*IF*EXISTS*test")*||
 7 ****!$mysqli->query("CREATE*TABLE*test(id*INT)")*||
 8 ****!$mysqli->query("INSERT*INTO*test(id)*VALUES*(1),*(2),*(3)"))*{
 9 ****echo*"Table*creation*failed:*("*.*$mysqli->errno*.*")*"*.*$mysqli->error;
 10 }
 11 if*(!$mysqli->query("DROP*PROCEDURE*IF*EXISTS*p")*||
 12 ****!$mysqli->query('CREATE*PROCEDURE*p()*READS*SQL*DATA*BEGIN*SELECT*id*FROM*test;*SELECT*id*+*1*FROM*test;*END;'))*{
 13 ****echo*"Stored*procedure*creation*failed:*("*.*$mysqli->errno*.*")*"*.*$mysqli->error;
 14 }
 15 if*(!$mysqli->multi_query("CALL*p()"))*{
 16 ****echo*"CALL*failed:*("*.*$mysqli->errno*.*")*"*.*$mysqli->error;
 17 }
 18 do*{
 19 ****if*($res*=*$mysqli->store_result())*{
 20 ********printf("---\n");
 21 ********var_dump($res->fetch_all());
 22 ********$res->free();
 23 ****}*else*{
 24 ********if*($mysqli->errno)*{
 25 ************echo*"Store*failed:*("*.*$mysqli->errno*.*")*"*.*$mysqli->error;
 26 ********}
 27 ****}
 28 }*while*($mysqli->more_results()*&&*$mysqli->next_result());
 29 ?>
WAT IK DENK is dat je mogelijks volgende zoekt
Ref: https://dev.mysql.com/doc/refman/5.7/en/commit.html
in php is het dan iets anders en ziet het er zo uit en dat kan per programmeertaal al een deel voorgeprogrammeert zijn.
(dbh is een pdo object)
Code:
1 $dbh->beginTransaction();
 2 try {
 3     // this query inserts data into the `users` table
 4     $stmt = $dbh->prepare('INSERT INTO `users`
 5                         (users_status, user_login, user_pass, user_email, user_registered)
 6                         VALUES(?, ?, ?, ?, NOW())');
 7     $stmt->bindParam(1, $userstatus, PDO::PARAM_STR);
 8     $stmt->bindParam(2, $username, PDO::PARAM_STR);
 9     $stmt->bindParam(3, $HashedPassword, PDO::PARAM_STR);
 10     $stmt->bindParam(4, $email, PDO::PARAM_STR);
 11     $stmt->execute();
 12     
getlastInsertId 
 13     $lastInsertID = $dbh->lastInsertId();
 14     // this query inserts data into the `users_status` table
 15     $stmt = $dbh->prepare('INSERT INTO `users_status`
 16                         (user_uid, user_activation_key)
 17                         VALUES(?, ?)');
 18     $stmt->bindParam(1, $lastInsertID, PDO::PARAM_STR);
 19     $stmt->bindParam(2, $activationkey, PDO::PARAM_STR);
 20     $stmt->execute();
commit
 21     $dbh->commit();
 22 }catch (PDOException $e) {
rollback
 23     $dbh->rollback();
 24     // log any errors to file
 25     ExceptionErrorHandler($e);
 27     exit;
 28 }
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan