Если Вы принимаете решение пойти с подрывной деятельностью, и Вы хотите разместить свой собственный svn сервер, то существует очень хороший и легкий основанный на окнах сервер под названием сервер VisualSVN. Это скрывает сложность установки апачского сервера, Вы в основном просто идете затем затем затем. Пользовательская конфигурация обрабатывается с webUI вместо конфигурации
http://www.visualsvn.com/server/
, использование общедоступной подачи rlike бобовый стебель, вероятно, легче, но некоторым людям нравится иметь их собственные репозитории, или для скорости или для безопасности
индекс таблицы - это структура данных, которая обеспечивает произвольный доступ к рядки быстрые и эффективные. Это также помогает оптимизировать внутреннюю организацию таблицы.
Внешний ключ - это просто указатель на соответствующий столбец в другой таблице, который формирует реляционное ограничение между двумя таблицами.
У вас будут внешние ключи в третьей таблице. Индексы не нужны, они вам нужны, если у вас много данных, по которым вы хотите быстро найти что-то по Id. Возможно, вам понадобится индекс по первичному ключу сообщений, но СУБД, вероятно, создаст его автоматически.
Индекс - это избыточная структура данных, которая ускоряет некоторые запросы. Внешний ключ для практических целей - это способ убедиться, что у вас нет недействительных указателей между строками в ваших таблицах (в вашем случае, от таблицы отношений до сообщений и тегов)
Индекс добавляется для быстрого поиска данных в таблице. Индекс может иметь ограничения в том смысле, что столбец или столбцы, которые используются для создания индекса, возможно, должны быть уникальными (уникальными: для этого индекса возвращается только одна строка в базе данных, или неуникальными: может быть возвращено несколько строк) . Первичный ключ для таблицы является уникальным индексом и обычно имеет только один столбец.
Внешний ключ - это значение в таблице, которое ссылается на уникальный индекс в другой таблице. Он используется как способ связать таблицы вместе. Например, дочерняя таблица может искать одну родительскую строку по ее столбцу, который является уникальным индексом в родительской таблице.
Вы описываете очень распространенную конструкцию базы данных; это называется «отношением многие-ко-многим».
Индексы не должны влиять на эту схему вообще. Фактически, индексы не должны влиять ни на одну схему. Индексы - это компромисс между пространством и временем: индексы указывают, что вы готовы использовать дополнительное пространство для хранения в обмен на более быстрый поиск в базе данных.
В Википедии есть отличная статья о том, что такое индексы базы данных: Индекс (база данных)
Чтобы использовать внешние ключи в mysql, вам необходимо создать индексы для обеих таблиц. Например, если вы хотите, чтобы поле a_id
в таблице b
ссылалось на поле id
в таблице a
, вам необходимо создать индексы для a.id
и b.a_id
, прежде чем вы сможете создать ссылку.
Обновление: здесь вы можете узнать больше об этом: http: //dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints. html
Вопрос : Можете ли вы объяснить, каким будет индекс в этом сценарии, чем он отличается от внешнего ключа и как это влияет на структуру моей базы данных?
Ваши внешние ключи в этом случае - это два столбца в вашей таблице Posts_Tags. При использовании внешнего ключа каждый столбец внешнего ключа должен содержать значение из основной таблицы, на которую он ссылается. В этом случае таблицы сообщений и тегов.
Posts_Tags-> PostID должны быть значением, содержащимся в сообщениях-> PostID
Posts_Tags-> TagID должен быть значением, содержащимся в Tags-> TagID
Думайте об индексе как о столбце, для которого увеличена скорость и эффективность запросов / поиска значений из него за счет увеличения размера вашей базы данных. Как правило, первичные ключи - это индексы и другие столбцы, которые требуют запроса / поиска на вашем веб-сайте, в вашем случае, вероятно, имя сообщения (Posts-> PostName)
В вашем случае индексы мало повлияют на ваш дизайн (их приятно иметь для скорости и эффективности), но ваши внешние ключи очень важны, чтобы избежать повреждения данных (значения в них не соответствуют сообщению и / или тегу).
за счет увеличения размера вашей базы данных. Как правило, первичные ключи - это индексы и другие столбцы, которые требуют запроса / поиска на вашем веб-сайте, в вашем случае, вероятно, имя сообщения (Posts-> PostName)В вашем случае индексы мало повлияют на ваш дизайн (их приятно иметь для скорости и эффективности), но ваши внешние ключи очень важны, чтобы избежать повреждения данных (значения в них не соответствуют сообщению и / или тегу).
за счет увеличения размера вашей базы данных. Как правило, первичные ключи - это индексы и другие столбцы, которые требуют запроса / поиска на вашем веб-сайте, в вашем случае, вероятно, имя сообщения (Posts-> PostName)В вашем случае индексы мало повлияют на ваш дизайн (их приятно иметь для скорости и эффективности), но ваши внешние ключи очень важны, чтобы избежать повреждения данных (значения в них не соответствуют сообщению и / или тегу).