Eşzamanlı erişim için mağaza veritabanı, iyi bir desen

1 Cevap php

Ben bazı tavsiyeler ya da iyi bir desen çeşit isteyin yüzden veritabanı tasarımı biraz yeni duyuyorum.

Durum bir veritabanı, birkaç tablo ve birçok kullanıcı, orada olmasıdır. Kullanıcı aynı anda veritabanı ile etkileşim nasıl, ben veritabanı tasarımı olmalıdır, ve / veya i sorguları hangi tür kullanmalısınız, o iş yapmak? Yani, onlar erişimi ve veri aynı kümesini değiştirebilirsiniz.

Ben işlemler hakkında düşünüyordum, ama bu iyi / doğru / tek çözüm eğer, emin değilim.

GÜNCELLEME:

Birçok kişi tarafından ben hiç, belki yüzlerce, binlerce demek. Müşteriler PHP WWW sayfası aracılığıyla MySQL bağlanırken edilecektir. Bazen katılmak, silmek ve seçin, ekleme, güncelleme: Onlar operasyonları gibi kullanacaktır. 5-20 istemciler ve bir-iki adminleri için küçük bir veritabanı bulunuyor. Müşteriler güncellenmesi ve bilgi seçerek olacaktır. Ben $ _SESSION bazı bilgi depolama ile işlemler hakkında düşünüyorum.

1 Cevap

çok etkili olabilir basit bir yaklaşım satır sürüm olduğunu.

  • ana tablo için bir sürüm int alan eklemek,
  • insert, 0'a ayarlandığında
  • ne zaman güncelleme, tek bunu artırmak; içinde bulunduğu bu sürüm alanı olmalı

ÖRNEK:

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)