2009-11-14 4 views
2

Я хотел создать базу данных статей для своих пользователей. Мне было интересно, как должна выглядеть моя структура базы данных MySQL?Структура базы данных статей MySQL?

Вот как выглядит структура таблицы базы данных.

CREATE TABLE users_articles (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
user_id INT UNSIGNED NOT NULL, 
PRIMARY KEY (id) 
); 
+0

Ваше описание вашего требования довольно расплывчато, пожалуйста, уточните дальше. –

+0

Мы не знаем ваших потребностей, как мы можем помочь в разработке структуры? –

+0

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

ответ

3

Предположительно, вы будете хранить свои статьи отдельно от своих пользователей (для удовлетворения 3NF). С этой целью я хотел бы начать с чем-то вроде:

Users: 
    UserId int primary key. 
    Other user-specific data (name, address, affiliations, ...). 

Articles: 
    ArticleId int primary key. 
    UserId references Users(UserId). 
    ArticleText varchar(big-enough-to-hold-article). 

Типы данных для первичных ключей в ваших руках (они не влияют на аспект 3NF).

Если вы хотите разделить текст статьи на абзацы или добавить ключевые слова в статьи и т. Д., То это расширение. Здесь вы должны начать.

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

  • Ключевые слова или условия поиска статей, хранящихся в двух других таблицах, один для хранения ключевых слов, а другой - для отношений между ключевыми словами и статьями.
  • Сводка статей, может быть просто другой столбец в таблице «Статьи».
  • Статьи, которые в конечном итоге нуждаются в большем, чем максимальное выделенное пространство, и в этом случае текст статьи можно разделить на другую таблицу с ссылкой внешнего ключа на Articles(ArticleId) и порядковый номер для заказа частей статьи.
+1

Это хороший ответ, с которым может начать OP. –

1

Ответ действительно зависит от спецификации всего вашего приложения, а не только от таблицы статей.

Рассматривая инструкцию create в вопросе, похоже, что это может быть таблица соединений, многие пользователи имеют много статей (многие для многих). В этом случае вы можете использовать только user_id и article_id и сделать их первичным ключом вместе, но тогда где таблицы пользователя и статьи и какая информация вы хотите хранить в этих таблицах?

  1. У вас есть хотя бы грубая спецификация того, как будет работать все приложение?
  2. Есть ли другие элементы данных, которые будут относиться к статьям?
  3. Вам нужно рассмотреть возможность расширения сферы применения вашего приложения в будущем?

Эта статья о Database Normalization может помочь вам в дальнейшем.

1

Текст статьи может быть сделан с возможностью поиска с использованием MySql's support for full-text indexing and searching Но понимание компромиссов с использованием таких индексов не обязательно является новичком.

Смежные вопросы