我正在使用php-MySQL在后端进行项目.它有各种文章可供浏览,分类为各种类别和用户登录系统.
我最近添加了一个监视列表功能,使用户可以将文章添加到他们的监视列表/仪表板中.
我有以下表格.
文章表
article-id(int)主要 - 唯一
cat(varchar)
名称(varchar)
subCat(varchar)
description(varchar)
添加日期
用户表
用户名(varchar)主要唯一
lname
fname
加入日期
.监视列表表
article-id(int)
username(varchar)
date_watch
我们可以看到没有用于监视列表表的唯一键
我想要(username + article-id)一个唯一的对因为每个用户名都存在多于1个文章ID而且反之亦然
我只想插入和删除行和它并不需要更新他们
如何防止重复条目?
到现在为止我一直用php检查行数
"SELECT * FROM watchlist WHERE article-id={$id} AND username={$user}"
Run Code Online (Sandbox Code Playgroud)
而如果
mysql_num_rows() >1(not allowed to insert)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果错误地执行INSERT命令将是一个重复的条目
如何防止它?
我正在使用phpmyadmin
我有以下表格.
文章表
a_id INT主要唯一
名称 VARCHAR
描述 VARCHAR
c_id INT
类别表
ID INT
cat_name VARCHAR
现在我只是使用
SELECT a_id,name,Description,cat_name FROM Articles LEFT JOIN Category ON Articles.a_id=Category.id WHERE c_id={$id}
这给了我所有属于某个类别的文章以及类别名称.
每篇文章只有一个类别.
我以类似的方式使用子类别(我有另一个名为sub_cat的表).
但是每篇文章都没有必要的子类别.它可能属于多个类别.
我现在想到标记一个包含多个类别的文章就像stackoverflow中的问题被标记一样(例如:有多个标签,如PHP,MYSQL,SQL等).
以后我必须显示(过滤)所有文章与某些标签(例如:标记为php,php + MySQL),我还必须显示标签以及文章名称,描述.
谁能帮我重新设计数据库?(我在后端使用php + MySQL)
mysql database database-design junction-table database-schema