gpt4 book ai didi

php - 数据库设计 : Selecting and limiting Favorites

转载 作者:可可西里 更新时间:2023-11-01 01:09:21 24 4
gpt4 key购买 nike

现在在数据库中,我有一个Members 表和一个Products 表,以及一个连接Favorites 表,该表由来自MembersProducts 表。我需要限制成员(member)可以在 5 点放入收藏夹的产品数量。

这个限制从何而来?它是在数据库 (MySQL) 中完成的,因此将成为我现有模式的一部分吗?或者这是一个编程功能,可以用 PHP 之类的东西来完成?

最佳答案

问题已经得到解答,但是,因为您正在寻求理解......

数据库的想法是,所有此类数据限制和约束都放在数据库本身(作为一个独立的单元)中。数据约束应该在数据库中,而不仅仅是在应用程序中。 ISO/IEC/ANSI SQL 提供了几种类型的约束,用于不同的目的:

  • FOREIGN KEY 约束,用于参照完整性(以及性能;开放架构合规性等)

  • 检查约束,检查其他列的数据值,并禁止违规

  • RULE 约束,禁止超出范围的数据或指定准确的数据值格式

您的是经典的简单 RULE 或 CHECK。数据库和数据库设计的正确答案是规则或检查,而不是代码。

这并不是说应用程序不应该检查计数,并避免尝试无效操作。这是很好的感觉。而且它不是重复,它是在更高级别停止无效操作,从而节省资源使用。如果完整性在外部由开发人员编写的应用程序代码中进行管理,则无法依赖 Db 中的数据。可以依赖在服务器内部实现的规则,它们对所有应用程序或应用程序组件强制执行。

但是免费软件 Non-SQL 不具备标准 SQL 的基础知识。没有检查或规则。因此,数据库中数据的完整性完全取决于开发人员:他们的质量、知识、一致性等。

MySQL/PHP 的正确答案是代码。在每个尝试插入的位置。

关于php - 数据库设计 : Selecting and limiting Favorites,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675410/

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