gpt4 book ai didi

php - 存储数据库,同时访问的良好模式

转载 作者:行者123 更新时间:2023-11-29 09:19:49 24 4
gpt4 key购买 nike

我对数据库设计有点陌生,所以我寻求一些建议或某种好的模式。

情况是,一个数据库,几个表,很多用户。如果用户可以同时与数据库交互,我应该如何设计数据库,或者/以及我应该使用哪些类型的查询才能使其工作?我的意思是,他们可以访问并更改同一组数据。

我正在考虑交易,但我不确定这是否是正确/良好/唯一的解决方案。

更新:

我所说的“许多”是指数百个,甚至数千个。客户端将通过 PHP 中的 WWW 页面连接到 MySQL。他们将使用诸如插入、更新、删除和选择之类的操作,有时还使用连接。这是一个小型数据库,可容纳 5 到 20 个客户和一到两个管理员。客户将更新和选择信息。我正在考虑在 $_SESSION 中存储一些信息的交易。

最佳答案

行版本控制是一种非常有效的简单方法。

  • 为主表添加一个version int字段,
  • 插入时设置为0
  • 更新时加一;在应该是版本字段的地方

示例:

CREATE TABLE myTable (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
vs INT NOT NULL,
)

INSERT INTO myTable VALUES (1, 'Sebastian', 0)

-- first user reads, vs = 0
SELECT * FROM myTable WHERE id = 1

-- second user reads, vs = 0
SELECT * FROM myTable WHERE id = 1

-- first user writes, vs = 1
UPDATE myTable SET name = 'Juan Sebastian', vs = vs + 1 WHERE id = 1 AND vs = 0
(1 row affected)

-- second user writes, no rows affected, because vs is different, show error to the user or do your logic
UPDATE myTable SET name = 'Julian', vs = vs + 1 WHERE id = 1 AND vs = 0
(0 rows affected)

关于php - 存储数据库,同时访问的良好模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438399/

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