Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convention table names (with underscore)

What is the correctly table name of this table in Laravel 3/4?

Structure
image_projects (id, project_id, image, ext, size, created_at, updated_at, active)

image_projects
imageprojects
imageProjects

And, how I can create the Model?

app/models/image_projects.php
app/models/imageprojects.php
app/models/imageProjects.php
app/models/image/projects.php
app/models/projects/image.php
like image 765
Patrick Maciel Avatar asked Jan 22 '13 00:01

Patrick Maciel


People also ask

Can table name contain underscore?

You cannot give underscore in table name.

Can table name start with _?

Nope. Underscores are perfectly legal in table names.

What is the naming convention for tables?

Tables are used for storing data in the database. The naming convention for a table name are as follows: Each table name should have a “tbl” prefix. The next word after the “tbl” prefix should be the table name.

Can column names have underscores in SQL?

There are no direct technical issue with using an underscore in the name. In fact, I do it quite often and find it helpful. Ruby even auto generate underscores in column names and SQL Servers own system objects use underscores too.


2 Answers

It makes no difference what you name your table, as long as you then name the file & class in singular form, with the class name starting with an uppercase letter.

You can use any of the following options:

Table name: image_projects

File name: ImageProject.php

Class name: ImageProject


Table name: imageprojects

File name: Imageproject.php

Class name: Imageproject


Table name: imageProjects

File name: ImageProject.php

Class name: ImageProject

In this case you'll have to set the $table property yourself.


Remember: If you don't name your class in singular form of what you name your table, you'll have to manually set it in your model:

class ImageProjects extends Eloquent
{
    public $table = 'image_projects';
}
like image 143
Joseph Silber Avatar answered Oct 14 '22 11:10

Joseph Silber


Current Laravel version 4.2 table name convention works OK in that way:

Table name: image_projects

File name: ImageProject.php

Class name: ImageProject

The camel-case class name forced me with an exception to use table name underscores.

like image 43
daVe Avatar answered Oct 14 '22 13:10

daVe