我想为我的用户创建一个文章数据库我想知道我的MySQL数据库结构应该是什么样的?
以下是我的数据库表结构到目前为止的样子。
CREATE TABLE users_articles (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);
答案 0 :(得分: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)
的外键引用和序列号以订购文章片段。< / LI>
答案 1 :(得分:1)
答案实际上取决于整个应用程序的规范,而不仅仅是文章表。
查看问题中的create语句,看起来它可能是一个连接表,许多用户都有很多文章(多对多)。在这种情况下,您可能只想使用user_id和article_id并将它们作为主键,但是那么用户和文章表在哪里以及您希望在这些表中存储哪些信息?
Database Normalization上的这篇文章可能对您有所帮助。
答案 2 :(得分:1)
可以使用MySql的support for full-text indexing and searching搜索文章的文本。 但是理解使用这些索引的权衡并不一定是初学者的主题。