Bir veritabanı olarak XML

6 Cevap php

Ben basit CRUD uygulaması oluşturmak için veritabanı olarak XML kullanarak PHP bu küçük komut başlamak istiyorum vb XML, XSL, XPath, hakkında okuma oldum. Ben SimpleXML kullanarak olacak ama öyle görünüyor stackoverflow üzerinde bazı cevapları okuduktan sonra birçok kişi DOMDocument öneririz (fazla SimpleXML fazla DOMDocument kullanarak yarar bir şey var mı?)

Her neyse, ne beni rahatsız eden onlara bir kimlik koymak nasıl? Ben sadece "1" ile başlar ve birisi bir düğüm ekler o zaman, böylece onu artırmak ve mıyım?

Kategori de var, ben koymak istiyorum bir yapının bu tür var

Parent  
 - Children          
 - Children  
   - Subchildren  

Ben XML koymak için nasıl bir fikir var ama benim için sorun onları ayrıştırma.

Neyse, kategoriler gerçekten beni o kadar rahatsız etmez. Ben sadece bir XML kaydedilmiş bir kimlikleri sayıları tutmak ve kullanmak gerektiğini bilmek daha fazla ilgileniyorum "referans" olarak.

6 Cevap

Sen "XML as the database." XML veritabanı " ve bu bir hata olur. Siz eşzamanlılık içine edeceğiz böylece gerçekten ne demek "a file idi sadece bir biçimlendirme dili olduğunu söyledi Sorun, olası yolsuzluk ve bir ton diğer sorunlar, yalnız büyük bir XML belgesinin berbat performans.

Ne gerek bir veritabanı ise, o zaman sadece bu kullanın: bir veritabanı. Bir dosya değil.

Bu tür phpMyAdmin için iyi bir meslektaşı yoksun olmasına rağmen SQLite, kullanımı basit ve hafif yükler için yeterince hızlı. Aksi takdirde, host kesinlikle bir MySQL veritabanı sunuyor.

Peki, ben size yardımcı olmaz, ama ben size öğüt vereyim: Sadece yok. XML çok yavaş örneğin SQLLite için, karşılaştırarak edilir. Neden XML istiyorsun?

This stackoverflow posting benzer bir konu hakkında bazı tartışma için bkz.

Ben bu durumda XML, burada tahıl karşı gitmek ve düz bir dosya veritabanı kullanarak yanlış bir şey olduğunu söylemek için gidiyorum

The are pros and cons, and for many the cons seem overwhelming to deal with and give advice that flat file is a bad way to go. It something is wrong, than it is this generalization. A More constructive way would be to point out what the disadvantages rather than denouncing flat file as an option.

Düz bir dosya veritabanı bazı başarılı uygulamaları, CMS tabanlı örneğin getsimple XML vardır. Bunu kod kurcalamak ve XML ile ne yaptığını se mümkün olabileceğini düşünüyorum.

Basit bir şey yeterli zaman olacağını, gerekirse daha sık daha bir sql veritabanı kullanılır inanıyoruz. Bir Sql veritabanı ya yolsuzluk veya hack geçirmez değildir, ve bu her zaman aşağı uygulanması söz konusu.

Bir egzersiz olarak bu ilginç tür, ancak bunun için XML kullanmak için söylüyorum herkes haklı. Bir RDBMS Eğer okuma ve yazma konum depolama için tipik en iyi çözümdür.

Sorununuza gelince, ben bir id sahip umursamaz herhangi bir düğüme bir id niteliğini eklemek için muhtemel olacaktır. Ben DOM uzantısı kullanıldığı zaman, eğer ben setAttribute , or if I were using SimpleXML, I'd use addAttribute yapardım.

Ama PHP XML ile uğraşan daha da çözüm vardır. Ben pek bir göz ve sizin ihtiyaçlarınıza en uygun hangi görmek istiyorum.

İyi şanslar.

IMO i uzak xml bir id sayım tutarak den tutmak istiyorsunuz. Eğer bu tür bir yeni bir öğe eklemek ilk defa gerektiği gibi sonra sadece belirli bir öğe üzerinde bir sayımını yapın - Eğer komut bir var olarak önbelleğe tutmak istiyorsanız ben o ok olacağını düşünüyorum. Dosyasındaki id sayısı aslında matematik elemanlarının kimliği sayılmaz, aksi takdirde potansiyel sorunu olabilir. Herhangi bir şey diske yazılmış ise her zaman doğru bir sayım olabilir, çünkü bu yarış durumu toprakları INTERING olabilir birden fazla kullanıcı ile bir app Ancak eğer başkası hala çalışırken. Sen basit bir metin dosyasında veya bir şey sayar önbelleğe isteyebilirsiniz.