Как я должен проектировать эту базу данных + Nhibernate - PullRequest
0 голосов
/ 13 декабря 2011

Я начал думать, что просто введу свои данные вручную через ms sql для проекта, над которым я работаю (это прототип / подтверждение концепции проекта), но после проектирования базы данных я вижу, что это будет просто боль и, вероятно, не спасет меня ни разу, поэтому я собираюсь разработать форму, которую я могу заполнить и сохранить ее в базе данных.

Когда я думал о ручном вводе данных, я проектировал свою базу данных следующим образом

Таблица продуктов имеет одну страну, а таблица стран может иметь много продуктов.

Я пытался удостовериться, что опечаток не будет, поскольку мне пришлось бы подключить его к существующей стране, а не просто указывать поле страны в таблице продуктов и открыть его для опечаток.

Теперь, когда я собираюсь ввести его через форму, мне интересно, есть ли смысл иметь эту отдельную таблицу в этом случае?

Я думал вместо этого поместить его в таблицу продуктов, но в моем коде C # создайте перечисление с названием Страна со списком действительных стран. Так что это должно остановить любые опечатки, поскольку я, вероятно, использовал бы его как выпадающий список, и если он не может преобразоваться в перечисление, он потерпит неудачу.

Я думаю, что в этом случае имеет больше смысла делать это, а не отдельную таблицу с названием Страна с полями PK и Name.

Хотелось услышать мысли других людей.

1 Ответ

1 голос
/ 13 декабря 2011

Отдельная таблица, в которой используется бессмысленный ключ (который может быть внутренним перечислением или столбцом идентификатора) и отображаемое значение, является наилучшим вариантом по следующим причинам:

1) Если название страныизменения (что нередко случается в последнее время) или добавлено, вам не придется перекомпилировать.

2) Если ваше приложение используется в разных странах, оно почти наверняка будет иметь разное написание для других стран, в этом случае гораздо проще обновить базу данных, чем создавать разные версии вашего приложения для каждой страны, в которой оно продается.

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