Zaman damgası alanlarını en iyi şekilde nasıl adlandırmalıyım?


57

Bazı zaman damgası alanları (veya diğer tarih / saat stili alanları) oluşturmayı ararken, bunları adlandırmanın en iyi yolu nedir? Sadece record_timestamp koymalı mıyım?

Yanıtlar:


42

Veri türünü değil, sütunun amacını açıklamanız gerekir. Adın tarih / saat / zaman damgası içerebilir, ancak anlamını da eklemelisiniz. Örneğin

  • Oluşturulma tarihi
  • Başlangıç ​​tarihi
  • StatusTime
  • erişilen
  • Güncellenmiş

Tarih / Saat / Zaman Damgası vb. Eklenmesi ve eklenmesi, ekleme eklemesinin eksikliğinin başka bir sütunla çakışması durumunda özellikle yararlıdır. Örneğin, bir tablonun hem bir Durum'a hem de bir Durum Zamanına ihtiyacı olabilir.


2
Sadece iki kuruş eklemek için. Birçok eski MRP sistemiyle çalıştım ve CreatedOnUtc ve UpdatedOnUtc'i sıkça kullandım.
Geovani Martinez

6
Bence "Erişim" ve "Güncellenme" belirsiz olabilir, çünkü aynı zamanda boolean (en azından Ruby dünyasında) anlamına da gelir
Artur Beljajev

2
Bir sürü SQL veritabanı olarak, PostgreSQL dahil, UTC'de depolayan ve müşterinin saat diliminde okuyan kafa karıştırıcı olabilecek @GeovaniMartinez.
Evan Carroll

Ve eğer zaman biriminin UTC - System Local olması gerekiyorsa, sütun ismine _UTC yazınız. Daha sonra kodu korumamız gereken herkese teşekkür ederiz.
Jonathan Fite,

Erişilen ve Güncellenme WHO'ya erişilip güncellenmediği belirsiz olabilir, bu da takip edilmesi oldukça yaygın olan bir şeydir
Joe Phillips

27

Nasıl hakkında xyz_atbir için timestampve xyz_onbir için datetarla - ör start_atya start_on?

Normalde alanın içine veri türünü dahil etmekten kaçınırdım - herhangi bir alanın adından tür hakkında bilmeniz gerekenleri çıkartabilirseniz daha iyi olur (bir alanın descriptionolması muhtemel değildir integer) - ancak söyleyebilmek a timestampve a arasındaki fark dategenellikle yararlıdır.


16

Kullanırım:

  • created_at
  • updated_at

2
"at" konumu da ima edebilir. Peki ya "yerine" yerine "at"?
Sepster

1
"At" ya da "at", bir şey olduğunda başvuruda bulunmak için yasal ve mali belgelerde sıkça kullanılır. turkish.stackexchange.com/questions/112770/…
Neil McGuigan

3
Hala belirsiz olabilir. Güncellemenin yapıldığı saat ve konumu bilmeniz gerekirse ne olur? updated_atYa olabilir. Ancak bence cevap, her zaman olduğu gibi, tüm gerçekçi belirsizliği ortadan kaldıran en özlü ismi kullanmak. Yani, belirli bir bağlamda belirli bir karışıklık için potansiyel varsa, ortadan kaldırın, ancak bunun için gerekenden daha ayrıntılı olan isimler kullanmayın
nafg

1
"açık" nasıl? Bir zamandan daha fazla bir tarih ima etse de, yine de çok açık
Joe Phillips

6

Profilinize baktım ve SQL Server ile çalıştığınızı ve SQL Server TIMESTAMP veri türünün tarih veya saatle ilgisi olmadığını ve satırları damgalama türünde kullanılacağını söylüyor. Bu, hangi satırların belirli bir zaman diliminde değiştirildiğini belirlemede çok faydalıdır.

TIMESTAMP kullanıyorsanız, bir sütun adı belirtmeniz gerekmez ve SQL Server sizin için bir "TimeStamp" sütunu oluşturur. Ancak "ROWVERSION" veri türünü kullanmanız önerilir ve bu durumda sütun adını belirtmeniz gerekir.

Böyle bir sütun için en iyi ad nedir? Değişir ve VersionStamp, RV vb. Gibi bir şey kullanırdım.

HTH

Ref: http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

http://msdn.microsoft.com/en-us/library/ms182776.aspx


3

Ben gibi sütun adlarını kullanarak bulundu create_time, update_timeve expire_timeo yöntem adlandırma ve özellikleri (RSpec) gelince daha iyi okunabilirlik yol açar.


1

Tarih damgaları için bir DT öneki kullanmayı tercih ederim. Örneğin: DTOpened, DTClosed, DTLastAccessed. Bu, belirli bir tabloda tüm tarih damgalarının hızlı bir referansı için tüm DTxxxx'i listelememe izin verir.


1

Texas Instruments için çalışıyorum ve sistemlerinde xxxx_ dttm kullanıyorlar


1

Ben zaten var olan sözleşmeleri kullanmayı tercih ederim.

Unix ve programlama dilleri, Değiştirme Zamanımtime için geniş kabul görmüş bir sözleşmeye sahiptir .

Yaratılış zamanı için

  • BSD ve Windows doğum zamanı kullanıyor
  • Windows ayrıca Oluşturma Zamanını da kullanıyor
  • xstat kullanır btime
  • ext4 kullanır crtime
  • JFS ve btrfs kullanıyorlar otime(sorma, "çıkarım" tahmininde bulunma ).

Bu yüzden benim için mtimeve crtimemeta veriler için seçim yapıyorum .

Kullanıcı tarafından sağlanan veriler için alanın temsil ettiği şeyle giderim. Doğum günü ise, sadece diyorum user_birthday.

Kesinlik kadarıyla, bazıları için onları çok fazla hassasiyetle kapatıyor görünmektedir. birthdateBir zaman damgası olarak depolayabilirsiniz (günün sonunda teknik olarak doğurulduktan sonra), ancak SQL spesifikasyonunda yüksek hassasiyetten daha düşük hassasiyete kadar yayın vardır, bu nedenle düzgün bir veritabanı kullanıyorsanız bu bir sorun olmamalıdır . Uygulamanızın kendisinde, gerektiğinde her zaman kısaltabilirsiniz. Söylemek istediğim, asla gitmeyeceğim birthday_date.


0

Anlamlı bir önek ve _TSMP'yi sonek olarak kullanırdım, örneğin CREATION_TSMP veya LAST_UPDATE_TSMP


0

Sütun adlarında tutarlılığı korumak için, aşağıdaki sözdizimini kullanmanızı öneririm:

dateCreated
dateUpdated
dateAccessed
dateStarted
date...

0

@Evan Carroll tarafından önerildiği gibi, modeli kırmak için güçlü bir nedeniniz yoksa, mevcut standartlara uyun.

Eğer bu yeni bir şeyse, size en uygun cevabı takip edebilirsiniz.

* _On ve * _by kullanıyorum çünkü satırın ne zaman ve kimin için tutarlı kalmasına yardımcı oluyor:

- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.