2009-08-14 2 views
2

Recently Я задал вопрос о том, как лучше всего разработать схему БД для поддержки нескольких типов пользователей и взаимодействия между ними, one of the answers предложил использовать одну таблицу для каждого типа пользователя и Distributed Keys.Где изучать SQL REFERENCES и внешние ключи для проектирования схемы?

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

Заранее благодарен!

EDIT: Меня интересуют конкретно примеры использования и документации MySQL, у меня есть already searched in the MySQL manual, но ничего полезного не появляется.

+1

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

ответ

2

Это не MySQL конкретное, но есть некоторые хорошие вещи здесь http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/

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

- Не используя SQL средства для защиты целостности данных

- Попытка кодировать общие T-SQL объекты

- Одна таблица для хранения всех домен значения

Другой хорошей отправной точкой является: http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx [битая ссылка 17 февраля 2015]

+0

+1000, Попытка кодировать общие объекты T-SQL –

1

Попробуйте следующее: Relational Database Design Basics или Wiki. Дайте this и прочитайте тоже.

В частности, связанные с MySQL:

Также этот StackOverflow вопрос: MYSQL and RDBMS

+0

Я ищу немного более подробную информацию. –

+0

Возможно, эта ссылка SO также может помочь: http://stackoverflow.com/questions/362839/mysql-and-rdbms –

+0

Добавлены некоторые URL-адреса, специально связанные с MySQL, надеюсь, что это поможет. –

0

Хью Дарвен сделал свой курс на Relational Algebra/Database Technology публично и свободно доступным. Поиск «Введение в теорию реляционной базы данных» на http://www.thethirdmanifesto.com

Это вводное, поэтому ничего «продвинутого», но по крайней мере вам не расскажут ничего, что является прямым нарушением теории.