Często, gdy potrzebuję przechowywać właściwości systemu, takie jak informacje o administratorze, wersje itp., Używam płaskiego pliku (database.properties, init.properties itd.). Wydaje się to powszechne w innych programach, które widzę i używam na co dzień.Czy nie jest dobrym pomysłem posiadanie tabeli właściwości w bazie danych?
Czasami płaski plik nie jest idealny z wielu powodów. Wdrażanie aplikacji internetowej dla wielu klientów często wiąże się z ograniczeniami. W takich przypadkach używam tabeli bazy danych do przechowywania informacji. Na przykład, powiedzmy, że mam dane administracyjne, które chcę zapisać, i być może pewne szczegóły dotyczące mojego środowiska. Mogę zrobić coś takiego:
property_entry_table
[id, scope, refId, propertyName, propertyValue, propertyType]
1, 0, 1, "DB_VER", "2.3.0", "FLOAT"
2, 0, 1, "LICENCE", "88475", "INT"
3, 0, 1, "TOP_PROJECT", "1", "INT"
4, 0, 1, "SHOW_WELCOME", "F", "BOOL"
5, 0, 1, "SMTP_AUTH", "SSH", "STRING"
6, 1, 1, "ADMIN_ALERTS", "T", "BOOL"
Zdaję sobie sprawę, to przerywa pisanie SQL i pozwala mi do przechowywania różnego rodzaju typów jako ciągi. Czy to dobra praktyka, czy też źle to robiłem?
Jeśli nie, w jaki sposób powinienem przechowywać tego typu informacje?
o ile jest przechowywany dla kilku właściwości systemu itp., Wszystko jest w porządku. Po prostu nie wpadnij na pomysł, aby przechowywać ** wszystkie ** twoje dane w ten sposób! Zobacz dyskusję, dlaczego: http://www.simple-talk.com/sql/database-administration/five-simple--database-design-errors-you-ould-avoid/ –
również, być może impet do to pytanie, dlaczego został odrzucony tutaj: http://stackoverflow.com/questions/2300356/using-a-single-row-configuration-table-in-sql-server-database-bad-idea/2300450#2300450 – Stephano