gpt4 book ai didi

mysql - 我将如何创建这个 MySQL 模式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:36 26 4
gpt4 key购买 nike

假设我有一个博客文章实体。

  • 它有很多属性
  • 它附有评论。
  • 它有很多状态(删除/锁定/不可见等)。
  • 它有很多“标签”。 (关键字、学校 ID、用户 ID)

显然,comments 应该是它自己的表,与 Blog 表是多对一的关系。

但是“状态”或“标签”呢?你会把它放在另一张 table 上吗?或者您会在许多栏中坚持这一点吗?

如果属性太大了怎么办?因为随着我的网站的增长,博客文章将附加越来越多的属性(标题、作者、废话、废话……)。如果属性列表高达 100,会发生什么情况?

最佳答案

这是一个示例:

同样..这只是一个示例..您还可以使用其他方法。

开始吧:

-- basic-basic blog
CREATE TABLE blog_entry (
blog_entry_id INT NOT NULL AUTO_INCREMENT,
blog_entry_title VARCHAR(255) NOT NULL,
blog_entry_text VARCHAR(4000) NOT NULL,
create_date DATETIME,
state_id INT
);

-- create a look-up table for your blog entry's state
CREATE TABLE be_state (
state_id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (state_id)
);

-- create a look-up table for your blog entry's tag/s
CREATE TABLE be_tag (
tag_id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (tag_id)
);

-- a table to store multiple tags to one entry
CREATE TABLE blog_entry_tags (
blog_entry_id INT NOT NULL,
tag_id INT NOT NULL,
PRIMARY KEY (blog_entry_id, tag_id)
);

-- a table to store definitions of attributes
CREATE TABLE be_attribute (
attribute_id INT NOT NULL AUTO_INCREMENT,
name CHAR(30)
);

-- now have a table to which you can assign multiple attributes to one blog
-- of course, this is if I understand you correctly
-- where you want to have additional attributes
-- aside from the basic properties of a blog entry
-- and will allow you, if you choose to do it
-- to not necessarily have all attributes for each entry
CREATE TABLE blog_entry_attributes (
blog_entry_id INT NOT NULL,
attribute_id INT NOT NULL,
PRIMARY KEY (blog_entry_id, attribute_id)
-- PK enforces one blog entry may have only one attribute of its type
-- meaning, no multiple attributes of 'location' attribute,
-- for example, for one blog. Unless of course you wrote half the entry
-- in one location and finished it in the next.. then you should
-- NOT enforce this primary key
);
  1. blog_entry - 您的主表, cargo 存放的地方

  2. be_state - 在这里定义它们,并将它们的 state_id 值插入到 blog_entry.state_id

  3. be_tag - 像我们这里那样有多个标签

  4. blog_entry_tags - 因为一个博客条目可能有多个标签,将它们存储在这里并插入 blog_entry.blog_entry_id 和相应的 be_tag。 tag_id 在一起。每个博客条目一个其类型的标签。这意味着您不能为条目 #1(例如)标记 php 两次或更多次。

  5. be_attribute - 在此处存储属性定义,例如位置、作者等

  6. blog_entry_attributes - 类似于 blog_entry_tags,您可以在其中为博客条目分配一个或多个 be_attribute

同样,这只是一种方法。

关于mysql - 我将如何创建这个 MySQL 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8232616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com