Несколько недавних вопросов обсуждают стратегии присвоения имен столбцам, и я был довольно удивлен, обнаружив концепцию встраивания понятия внешних и первичных ключей в имена столбцов. ЭтоЗачем указывать атрибуты первичного/внешнего ключа в именах столбцов
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo_pk = t2.id_foo_fk
Я должен признаться, я никогда не работал на любой системе базы данных, которая использует такую схему, и мне интересно, что выгоды. Как я вижу это, как только вы узнаете N основных таблиц системы, вы будете писать на несколько порядков больше запросов с этими таблицами.
Чтобы стать продуктивным в процессе разработки, вам нужно узнать, какие таблицы являются важными таблицами и которые являются простыми притоками. Вы захотите зафиксировать большое количество имен столбцов в памяти. И одна из основных задач - объединить две таблицы вместе. Для уменьшения усилий обучения, проще всего сделать, это убедиться, что имя столбца является одинаковым в обеих таблицах:
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo = t2.id_foo
Я утверждаю, что, как разработчик, не нужно напоминать, что многое о том, какие столбцы являются первичными ключами, которые являются чужими и ничто. Достаточно просто взглянуть на схему, если вам интересно. При взгляде на случайный
tx inner join ty on tx.id_bar = ty.id_bar
... все это важно знать, какой из них является иностранным ключом? Внешние ключи важны только для самого механизма базы данных, позволяя ему обеспечивать ссылочную целостность и делать правильные вещи во время обновлений и удалений.
Какая проблема решается здесь? (Я знаю, что это приглашение для обсуждения и не стесняйтесь этого делать. Но в то же время я хочу найти ответ, в котором я действительно могу что-то пропустить).
Не был бы это Invoice.InvoiceCustomerUserName? И это в опасности быть хуже, чем теги типа ... Invoice.UserName = Customer.UserName кажется мне достаточно понятным. – 2008-10-17 22:55:46
Извините, это ужасно. Просто ужасно. Это похоже на «умность», которая устраняет необходимость в табличных псевдонимах. Почти так же плохо, как место, где я работал, где имена таблиц были префиксами T_ и столбцы C_ (представления и индексы получили префиксы тоже ...) – 2008-10-18 00:07:51