2010-10-21 65 views
2

我正在使用SQL數據庫(我使用SQLite)的程序。什麼我的程序確實是這樣的:避免列名冗餘訪問SQL數據庫?

  1. 會在數據庫中的表,如果不存在(在啓動時)
  2. 執行SQL查詢(SELECT,UPDATE,DELETE)他們 - 從用戶決定接口

我看到這樣做是有冗餘的很多。我在創建表格時以及在表格中更新或插入信息時給出了列的名稱。

CREATE TABLE USERS (
USER_ID, 
NAME, 
ADDRESS); 

UPDATE USERS (
NAME='John Smith' 
WHERE USER_ID='1' 
); 

這可以用超過3個或4個表和錯誤處理,如果我拼錯了列名時會發生令人沮喪。

我想知道是否有能夠創建/通過只是給有關表的描述部分規格生成這些SQL查詢的設計師。

謝謝你的任何建議,

尤利安

PS:該代碼是用Java編寫的,但我必須能夠也從C/C++命令行程序訪問代碼。

+0

我不知道你想象什麼樣的解決方案。創建表格時,您需要指定所有列名稱。創建查詢時需要指定特定的列名(否則,您如何指定查詢條件是什麼?)。我想你可以所有的名字存儲在某種地圖,但隨後你的查詢會落得像'「用戶更新(」 +名[0] +「WHERE」 +名[1] +「=‘1’); '這些表的結構是動態的嗎?(例如,它可以在運行時變化,還是在編譯時知道)? – 2010-10-21 13:28:23

回答

3

這是ORM背後的基本想法,比如Ruby on Rails的ActiveRecord,hibernate和類似技術。基本上你設置一個表的配置 - 或使用標準的命名約定 - 和框架將生成的CRUD(INSERT/SELECT/UPDATE/DELETE)爲您查詢。