Damien Mathieu

Blog d’un développeur web

Zend Framework et Mysqli

novembre3

Je publie ce billet un peu rapidement comme une note car j’ai eu du mal à trouver l’information lorsque j’en ai eu besoin.

La documentation de Zend Framework n’indique que les informations de connexion pour SQLite dans app.ini.
Mais tout le monde n’utilise pas SQLite (et pour donner un avis totalement personnel, je dirais heureusement).

Voici donc les informations requises pour la configuration de MySQL dans votre application utilisant Zend Framework.

[general]
database.adapter = “MYSQLI”
database.params.host = “localhost”
database.params.username = “root”
database.params.password = “”
database.params.dbname = “myDatabase”

Et puis rien que pour le fun, Oracle :
[general]
database.adapter = “Oracle”
database.params.host = “localhost”
database.params.username = “root”
database.params.password = “”
database.params.dbname = “myDatabase”

SQL Server
[general]
database.adapter = “Pdo_Mssql”
database.params.host = “localhost”
database.params.username = “root”
database.params.password = “”
database.params.dbname = “myDatabase”

Et PostgreSQL
[general]
database.adapter = “Pdo_Pgsql”
database.params.host = “localhost”
database.params.username = “root”
database.params.password = “”
database.params.dbname = “myDatabase”

posted under PHP | 4 Comments »

Rails : création de bases de données et multiples clés étrangères

juin30

Ruby on Rails propose des méthodes “create_table” et une fonctionnalité “db:migrate”, qui permetten de créer la base de données de votre application.
Des exemples sur “Migration” sont disponibles avec l’API du framework.

Par défaut, l’outil crée un champ “id”, qui est la clé primaire de votre table.
Vous pouvez modifier cela avec les options “id” et “primary_key” lors de l’appel à la fonction create_table.
Ainsi, pour créer une table “test” sans clé primaire, il vous faut faire :

create_table :test, :id => false do |t|
end

Vous pouvez également créer une table avec une clé primaire qui se nommerait “myId”

create_table :test, :primary_key => "myId" do |t|
end

Mais vous pouvez également désirer créer une table avec deux champs comprenant la clé primaire. Vous pouvez essayer de mettre deux champs dans primary_key malheureusement, cela ne fonctionne pas (vraissemblablement car certains SGBDR ne gèrent pas la création de clé primaires constituées de deux champs).

Il va donc falloir tricher. Sachez déjà que notre base ne sera pas en 3e forme normale.

Créeons donc d’abord une table “user_access” avec deux champs : user_id et access_id

create_table :user_access, :id => false do |t|
t.column :user_id, :integer
t.column :access_id, :integer
end

Maintenant il nous faut déclarer nos deux champs comme étant des index.

add_index :user_access, [:user_id, :access_id], :unique

Nous créeons donc un index unique contenant nos deux champs. Nous n’avons pas de clé primaire à proprement parler. Mais le SGBDR traitera la chose de la même manière.

Le code en entier :

class AddUserAccess < ActiveRecord::Migration
def self.up

create_table :user_access, :id => false do |t|
t.column :user_id, :integer
t.column :access_id, :integer
end
add_index :user_access, [:user_id, :access_id], :unique
end
end

posted under Rails | No Comments »

Rss Feeds

En Français
In English