2.4.2 Convenzioni di Model e Database
I nomi per le classi dei modelli sono singolari e CamelCased. Person, BigPerson e ReallyBigPerson sono tutti esempi di nomi per modelli che rispettano queste convenzioni.
I nomi delle tabelle corrispondenti ai modelli CakePHP sono plurali e minuscoli. Le tabelle che implementano le classi sopra menzionate dovrebbero essere denominate rispettivamente: people, big_people e really_big_people.
Foreign keys nelle relazioni hasMany, belongsTo o hasOne sono riconusciute di default come il nome (singolare) del modello associato seguite da _id. the (singular). Quindi se un pasticcere hasMany torte, la tabella torte si riferirà al pasticcere nella tabella pasticcere mediante la foreign key psticcere_id.
I join tra le tabelle, utilizzate nella relazione hasAndBelongsToMany, dovrebbe essere denominati in accordo ai nomi delle tabelle che vanno ad unire, in ordine alfabetico (apples_zebras piuttosto che zebras_apples.).
Tutte le tabelle con le cui CakePHP interagisce (con l'eccezione di tabelle join), richiedono una singola chiave primaria per identificare ogni riga. Se desideri utilizzare una tabella che non ha un singolo campo come chiave primaria, come le righe della post_tags tabella join, la convenzione di CakePHP è che un singolo campo di chiave primaria è aggiunto alla tabella.
CakePHP non supporta chiavi primarie complesse. Nell'evento in cui vuoi direttamente manipolare i dati joinando delle tabelle, bisogna utilizzare direttamente la chiamata query, o aggiungere un campo di chiave primaria per usarlo come un normale model. E.g.:
CREATE TABLE posts_tags ( id INT(10) NOT NULL AUTO_INCREMENT, post_id INT(10) NOT NULL, tag_id INT(10) NOT NULL, PRIMARY KEY(id));
