Table des matières
回复内容:
解决方法
Maison développement back-end tutoriel php 在数据库中怎么做到所有用户共用一张表,但是每个用户的订单编号却是独立的命名空间?

在数据库中怎么做到所有用户共用一张表,但是每个用户的订单编号却是独立的命名空间?

Aug 04, 2016 am 09:20 AM
java mysql php sql 数据库

1.实际场景:
数据库中订单表是公用的,所有用户在一张订单表上。
怎么让每个用户的订单编号是独立的命名空间?比如用户A下了两张订单,他的订单编号应该是C001、C002,用户B下了三张订单,他的编号起始位置应该还是C001,而不是C003,他的所有订单编号应该是C001,C002,C003。
请问怎么做到这一点?
难道要在每个用户底下存一个他当前开了多少个订单的字段,然后每次先读出来,加一,再存回去?这不太好吧……有没有更好的方法,在数据库端就做了?好像听人说起过用数据库函数或者触发器?

2.如果数据库能做到上述这一点,请问这个C001一般是存在主键字段里么?还是主键依然是一个数字类型的递增主键,只是在表中增加一个字段去存这个C001?

注:是在Mysql数据库中。

回复内容:

1.实际场景:
数据库中订单表是公用的,所有用户在一张订单表上。
怎么让每个用户的订单编号是独立的命名空间?比如用户A下了两张订单,他的订单编号应该是C001、C002,用户B下了三张订单,他的编号起始位置应该还是C001,而不是C003,他的所有订单编号应该是C001,C002,C003。
请问怎么做到这一点?
难道要在每个用户底下存一个他当前开了多少个订单的字段,然后每次先读出来,加一,再存回去?这不太好吧……有没有更好的方法,在数据库端就做了?好像听人说起过用数据库函数或者触发器?

2.如果数据库能做到上述这一点,请问这个C001一般是存在主键字段里么?还是主键依然是一个数字类型的递增主键,只是在表中增加一个字段去存这个C001?

注:是在Mysql数据库中。

1:数据库中不用那样存,你只需要遍历出来所有定单之后,显示时按顺序就行了。
2:给每个用户属性中增加静态成员变量,并且数据库中相应增加字段,每次加入的数据就是你说的样子了。

楼主的意思应该是建立不同客户账户的统一订单管理库,不同账户只能看到属于自己的订单,有点类似云erp。

订单表可以冗余一个主键id,在数据存储唯一性上面,可以看为订单code+用户id来唯一确认一条数据。

如果说需要表结构优化设计的话,可以根据每个用户自动建立一张订单表,将每个用户的订单数据独立出来,表名类似order_userid 每次根据用户找到对应表名取数据,但在最后的综合后台对所有用户订单数据统计可能会稍微麻烦些。

请问你如何保证订单的唯一

如果根据题述意思设计数据库,则仅查找订单这一操作就将出现异常。因为我们根据订单号无法确定唯一订单
主键的值用于唯一地标识表中的某一条记录。

(关于你的项目
我建议:
订单这张表的主键可以是OrderId
而用户表的主键可以是UserId
我认为您的问题应该出在数据库表的基本理解上。建议阅读数据库规范化的相关内容。)

  1. 用一个orderid表存放所有用户下一个order的id,如果觉得麻烦建议你用时间作为订单号的一部分。

  2. 不能作为主键,主键设计有一个原则——必须是和业务无关的。所以主键永远都是无意义的自增ID之类的。

我看不出你这个问题是要解决什么实际的需求

表结构的设计,要遵守最基本的三个范式的要求。三个范式的目的,是要保证字段之间不要有冗余,不要有依赖。上面几位说的问题,我就不重复了,你这样设计,违反了数据库表结构设计的三大范式的原则,建议你好好理清楚需求,不应该做这样的设计,或者我们理解错了,你把问题重新表述一番。或者直接贴出你的建表语句来。

可以使用联合主键将uid和cid组合起来,这就就可以保证唯一性了。但要注意如下两点:
1、要使用mysql联合主键自增,需使用MyISAM作为存储引擎。
2、使用联合 主键自增的时候,自增键不能是主键最左的键。

order表里面增加一个user_owner_order_key,然后自己写代码处理 C001 这种东西与真实order_id之间的互换逻辑就行了。

<code>//伪码 
$user_owner_order_id = (select count(*) from order where user = $uid and order_id </code>
Copier après la connexion

说一个其他方面的问题,一般的第三方支付对于同一个订单号是无法多次付款的,所以最好考虑清楚要不要这样做。

解决方法


  1. 用户表可以有一个字段存放订单数量,每次有新订单就取这个值加一,然后更新回去;

  2. 新订单获取已有订单的条数,加一,不过这个删除订单的时候必须是软删除了

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

La pertinence durable de PHP: est-elle toujours vivante? La pertinence durable de PHP: est-elle toujours vivante? Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

Objectif de PHP: Construire des sites Web dynamiques Objectif de PHP: Construire des sites Web dynamiques Apr 15, 2025 am 12:18 AM

PHP est utilisé pour créer des sites Web dynamiques, et ses fonctions principales incluent: 1. Générer du contenu dynamique et générer des pages Web en temps réel en se connectant à la base de données; 2. Traiter l'interaction utilisateur et les soumissions de formulaires, vérifier les entrées et répondre aux opérations; 3. Gérer les sessions et l'authentification des utilisateurs pour offrir une expérience personnalisée; 4. Optimiser les performances et suivre les meilleures pratiques pour améliorer l'efficacité et la sécurité du site Web.

PHP en action: Exemples et applications du monde réel PHP en action: Exemples et applications du monde réel Apr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

PHP: Gestion des bases de données et logique côté serveur PHP: Gestion des bases de données et logique côté serveur Apr 15, 2025 am 12:15 AM

PHP utilise les extensions MySQLI et PDO pour interagir dans les opérations de base de données et le traitement de la logique côté serveur, et traite la logique côté serveur via des fonctions telles que la gestion de session. 1) Utilisez MySQLI ou PDO pour vous connecter à la base de données et exécuter les requêtes SQL. 2) Gérer les demandes HTTP et l'état de l'utilisateur via la gestion de session et d'autres fonctions. 3) Utiliser les transactions pour assurer l'atomicité des opérations de base de données. 4) Empêcher l'injection de SQL, utiliser les connexions de gestion des exceptions et de clôture pour le débogage. 5) Optimiser les performances via l'indexation et le cache, écrivez du code très lisible et effectuez une gestion des erreurs.

PHP: Création de contenu Web interactif avec facilité PHP: Création de contenu Web interactif avec facilité Apr 14, 2025 am 12:15 AM

PHP facilite la création de contenu Web interactif. 1) Générez dynamiquement du contenu en intégrant HTML et affichez-les en temps réel en fonction des données d'entrée ou de base de données utilisateur. 2) Traitez la soumission du formulaire et générez une sortie dynamique pour garantir que HTMLSpecialChars est utilisé pour empêcher les XS. 3) Utilisez MySQL pour créer un système d'enregistrement des utilisateurs, et utilisez des instructions Password_hash et du prétraitement pour améliorer la sécurité. La maîtrise de ces techniques améliorera l'efficacité du développement Web.

PHP: une introduction au langage des scripts côté serveur PHP: une introduction au langage des scripts côté serveur Apr 16, 2025 am 12:18 AM

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

See all articles