За последние 24 часа нас посетили 20540 программистов и 1829 роботов. Сейчас ищут 980 программистов ...

Наименование полей в таблице

Тема в разделе "MySQL", создана пользователем andryk, 4 мар 2009.

  1. andryk

    andryk Активный пользователь

    С нами с:
    4 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Читая документации по ORM-системам и т.д., везде рекомендуется создавать PK с именем id, а поля называть без всяких приставок.
    Я же создаю все таблицы с полями в стиле "имя таблицы"_"имя поля"
    Если таблица user, то поля user_id, user_name, user_password и т.д.
    Такое решение мне нравится тем, что если я буду делать join с другими таблицами, мне не прийдется задавать alias'ы для полей с одинаковым именем.
    Подскажите, почему все делают именно так?
     
  2. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    производительность. и алиасы это правильно.
     
  3. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    все делают что?
     
  4. andryk

    andryk Активный пользователь

    С нами с:
    4 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    все используют первый стиль. Ну вот например, есть у меня таблицы
    user
    id | name | password | country_id
    1 | user1 | test | 1
    2 | user2 | test | 2

    country
    id | name
    1 | Russia
    2 | Ukraine

    select user.id as user_id, user.name as user_name,password,country_id,country.name as country_name from user join country on user.country_id = country.id;

    Если бы структура была такая:

    user
    user_id | user_name | user_password | country_id
    1 | user1 | test | 1
    2 | user2 | test | 2

    country
    country_id | country_name
    1 | Russia
    2 | Ukraine

    То достаточно просто
    select * from user join country on user.country_id = country.country_id;

    Как мне кажется разница существенна, и это только две маленьких таблички

    Но я не пишу голые запросы, а использую Active Record CodeIgniter (Kohana). По этому так мне вдвойне удобней -
    $this->db->join('country','country.country_id = user.country_id');
    $this->db->get('user');
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    +1