使用200个字段识别行中的字段(mysql数据库)

时间:2017-06-10 03:07:56

标签: php mysql row field element

我想存储100个URL和100个锚文本,并且它们在一起形成链接时连接,例如url_01 / anchor_01,然后另一个集合是url_02 / anchor_02。

因此,我创建了100个网址字段和100个锚点字段,以便将我的数据存储到具有其他客户价值的行中。

在使用了一套之后我想从数据库中删除它,现在我正在考虑添加一个计数器来识别我们必须采取的组合:

$count=$all_anchors['count'];
$anchor=$all_anchors['anchor_<?php echo $count; ?>'];
echo $anchor;

我知道这适用于标准的PHP / HTML,如:

<?php $count=$all_anchors['count']; ?>
<a href="http://www.website.com/?id=<?php echo $count; ?>">anchor</a>

但它无法识别数据库中的字段。

希望有人可以帮助我,重要的是我知道ID,例如与价值相对应的数字,因为我想在使用它之后将其清空。

2 个答案:

答案 0 :(得分:0)

这是一个不会扩展的糟糕设计,为了回答您的问题,您必须遍历每一列以匹配您正在寻找的URL值(并且当然您知道行ID是您&# 39;重新审视)。 喜欢

UPDATE TABLE SET col1=if(col1='url_01','',col1),col2=if(col2='url_01','',col2) ... where id=<row_id>
等等...... 类似地,对于锚标签。

建议:

你应该创建三个非规范化表:
 1. urls :记录所有可用的网址

id   url        created_at
1    url_001    2017-06-10 
2    url_002    2017-06-10 

2。 锚点:记录所有可用的锚点

id   anchor  created_at 
1    anc_001    2017-06-10  
2    anc_002    2017-06-10

3。 url_anchors :映射表,您可以使用customer_id将任何网址附加到任何锚标记(不再重复相同的网址或锚值)。如果不需要,建议不要进行物理删除,而是将行(is_deleted)标记为已删除。(index url_id和anchor_id)

id   url_id    anchor_id  customer_id created_at  is_deleted  deleted_at 
1    1         1          tom         2017-06-10  0           NULL
1    1         2          tom         2017-06-10  0           NULL
1    2         2          tom         2017-06-10  1           2017-06-10

搜索查询:

update
urls u
join url_anchors ua on u.id=ua.url_id
join anchors a on a.id=ua.anchor_id
set
is_deleted=1,
deleted_at=now()
where 
u.url=<searched url>
and a.url=<searched anchor>

删除查询(不推荐):

delete
ua
from
urls u
join url_anchors ua on u.id=ua.url_id
join anchors a on a.id=ua.anchor_id
where 
u.url=<searched url>
and a.url=<searched anchor>

答案 1 :(得分:0)

您需要clients table,其中您将拥有一些特定于客户端的列。例如:

客户(身份证,姓名,用户名,密码)

对于links table,您需要foreign key clients table,例如

links(id, inner_text, url, client_id)

我知道您将拥有更多clients并且链接特定于客户端,但您可以使用links.client_id实现此分离。您可以count这样的客户links

select count(*)
from links
where client_id = 5

其中5是使用。{/ p>过滤client_id的当前links