Перемещение справочных / справочных таблиц в новую схему - PullRequest
4 голосов
/ 06 декабря 2011

Мы создаем веб-приложения ASP.NET MVC3 с использованием Visual Studio, SQL Server 2008 R2 и EF Code First 4.1.

Довольно часто у нас есть меньшие, как мы называем, «поисковые» таблицы.Например, таблица «Status» содержит «Id» и «Name».По мере роста приложения эти таблицы становятся довольно частыми, и я хотел бы знать, как лучше «сгруппировать» эти менее важные таблицы вдали от сути приложения.

Мне было предложено добавить префикскак "LkStatus", чтобы помочь мне, но как насчет перемещения всех таблиц поиска из dbo в свою собственную схему?

Может ли кто-нибудь увидеть какие-либо недостатки в этом методе?

Ответы [ 3 ]

4 голосов
/ 06 декабря 2011

Недостатков у этого метода нет. Я лично фанат схем. Я бы использовал Lookup хотя

Чтобы изменить схему таблицы, у вас есть два способа:

ALTER SCHEMA Lookup TRANSFER dbo.SomeTable

или

ALTER AUTHORIZATION ON dbo.SomeTable TO Lookup
1 голос
/ 06 декабря 2011

Это будет до предпочтения.Там действительно нет "Гоча" в любом случае.Я предпочитаю префикс таблицы, но в любом случае меня это не беспокоит.Мы используем LU_ *.До тех пор, пока применяется любой из этих вариантов, обслуживание в дальнейшем будет простым.

0 голосов
/ 07 декабря 2011

Поскольку таблицы маленькие, как насчет того, чтобы объединить их в одну таблицу?Вместо использования имени таблицы в качестве псевдоключа используйте реальный ключ.Например, вы могли бы иметь таблицу с именем Lookup, с Id, Type, Name и Value, где Type = 'Status' для ваших значений состояния.Установка кластеризованного индекса (Тип, Имя) физически сгруппировала бы все строки одного типа вместе, что позволило бы при необходимости быстро прочитать их все как группу.

Если ваши имена могут иметь разные данныетипы, добавьте дополнительный столбец для каждого требуемого типа: один для целых чисел, один для строк, один для чисел с плавающей точкой и т. д. Вы можете сделать нечто подобное, используя столбец XML;T-SQL требует чуть больше усилий.

...