Странная структура базы данных - PullRequest
1 голос
/ 17 ноября 2011

Я кратко рассмотрю базу данных SQL Server для веб-приложения. Первое, что я заметил, это то, что из 200-300 таблиц есть только 2 таблицы с первичным ключом, и они являются составными ключами. Других индексов нет нигде. Даже таблицы "members" не имеют индексированных ключей. Также нигде не используются внешние ключи.
Должен ли я волноваться?
Есть хорошее объяснение, почему такая структура может быть желательной?

Ответы [ 2 ]

7 голосов
/ 17 ноября 2011

ДА!! Вы должны быть обеспокоены ......

Процитировать гуру SQL:

, если у него нет первичного ключа, это не тактаблица

Любая таблица должна иметь первичный ключ - только первичный ключ гарантирует, что любая строка может быть уникально идентифицирована (и с ней можно работать - делая все, что вам нужно)чтобы сделать это).

Что еще хуже, в SQL Server таблицы без ключа кластеризации (который по умолчанию является первичным ключом) называются heaps , и они ужасно плохиэксплуатационные характеристики. Королева индексирования - Кимберли Трипп - прекрасно показывает все плохие вещи о кучах в своем сообщении в блоге Дебаты по кластерным индексам продолжаются! - прочитайте и живите: -)

И , не имеющие каких-либо внешних ключей граничит с абсолютным безрассудством - любые разработчики БД, которые сознательно избегают внешних ключей, должны быть убраны и расстреляны ... это главная причина THE даже иметь реляционную базу данных - способность обеспечивать согласованность и целостность данных .

покачивая головой в недоумении - еще раз ....

1 голос
/ 17 ноября 2011

Все дело в конструкторе архитектора базы данных ... ваша установка хороша и плоха.

Я приведу вам пример CRM-приложения с именем SuperOffice в их базе данных SQL есть много таблиц, но ни в одной из них нет PK или FK, и нет поля с автоматическим номером, идентификаторы задаются концептуальной таблицей, которая содержит идентификатор сущности таблицы и последний созданный идентификатор.

enter image description here

И это очень быстро!

Так что я бы не стал сильно волноваться, подумал, что я спрошу, почему только из-за любопытства то же самое я сделал с людьми из SuperOffice:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...