除了审计字段之外,我的项目中的一切都很好.只是插入和更新正在我们想象的宇宙中进行审核.
我提出了一个类似于下一个例子的表:
在SQL Server中实现审计表的建议? 只是表名,表列,用户,操作和日期.
但是我的团队没有想到同样的方式,他们在每个表上放置一列来跟踪更新或插入时间.当我问为什么?他们告诉我,这就是他们在工作中保持轨道的方式.
最后我放弃了,我把每个字段放在每张桌子上.由于除了我以外的所有团队,都告诉我把那些领域.
例:
他们的方法
Table Customer
+-------------+-------------+-----+--------------------------------+-------------+
| Name | LastName | ... | LastModification (Audit Field) | User |
+-------------+-------------+-----+--------------------------------+-------------+
| varchar(30) | varchar(50) | ... | datetime | varchar(30) |
+-------------+-------------+-----+--------------------------------+-------------+
Run Code Online (Sandbox Code Playgroud)
我的方法
Table Customer
+-------------+-------------+-----+
| Name | LastName | ... |
+-------------+-------------+-----+
| varchar(30) | varchar(50) | ... |
+-------------+-------------+-----+
Table Audit
+-----------+------------+--------+------+-------------+
| TableName | TableField | Action | User | DateAndTime |
+-----------+------------+--------+------+-------------+
Run Code Online (Sandbox Code Playgroud)
所以问题是:
哪个是更好的设计,一个表保存事务的历史记录或每个表的一个字段?(正确和缺点)
目前我正在开发一个RFID项目,每个标签都附在一个物体上.一个物体可以是一个人,一台电脑,一支铅笔,一个盒子或者老板心中的任何东西.当然,每个对象都有不同的属性.
所以我想要一个表标签,我可以在其中保存系统中每个标签的寄存器(标签的注册).另外一个表格,我可以将标签与对象相关联并描述其他一些属性,这就是我们所做的.(没有真正的架构只是一个简化版本)

突然间,我意识到这个模式在几个表中可以有相同的标记.例如,标签123可以同时在C和B中.这是不可能的,因为每个标签只能附加到一个对象上.
简单来说,我希望每个标记在数据库中不会出现多次.
我目前的做法

我真正想要的是什么

更新: 是的,TagID由最终用户选择.此外,TagID由标签阅读器给出,TagID是128位数.
新更新: 到目前为止的对象是:
- 药物(TagID,comercial_name,generic_name,amount,...)
- 机器(TagID,名称,描述,型号,制造商......)
- 患者(TagID,firstName,lastName,birthday,...)
所有属性(列或您命名的任何属性)都是非常不同的.
更新后更新
我正在研究一个带有医院RFID标签的系统.每个RFID标签都附着在一个物体上以便观察它们,不幸的是每个物体都有许多不同的属性.
对象可以是人,机器或药物,也可以是具有其他属性的新对象.
所以,我只想要一个灵活的切割器架构.这允许我引入新对象的类型,并让我轻松地向一个对象添加新属性.请记住,这个系统可能非常庞大.
例子:
Tag(TagID)
Medicine(generic_name, comercial_name, expiration_date, dose, price, laboratory, ...)
Machine(model, name, description, price, buy_date, ...)
Patient(PatientID, first_name, last_name, birthday, ...)
Run Code Online (Sandbox Code Playgroud)
我们必须只为一个对象关联一个标记.
注意:我真的不会说(或者也写):P抱歉.这里不是母语人士.
我正在测试一些代码
True = 2
print 1 - (1 == 1)
print True == (1 == 1)
Run Code Online (Sandbox Code Playgroud)
然后我就期待着:
-1
True
Run Code Online (Sandbox Code Playgroud)
但我得到了这个:
0
False
Run Code Online (Sandbox Code Playgroud)
所以,我做了任何 Python 程序员都会做的事情:反汇编它。
def f():
True = 2
print 1 - (1 == 1)
print True == (1 == 1)
2 0 LOAD_CONST 1 (2)
3 STORE_FAST 0 (True)
3 6 LOAD_CONST 2 (1)
9 LOAD_CONST 2 (1)
12 LOAD_CONST 2 (1)
15 COMPARE_OP 2 (==)
18 BINARY_SUBTRACT
19 PRINT_ITEM
20 PRINT_NEWLINE
4 21 LOAD_FAST 0 (True)
24 …Run Code Online (Sandbox Code Playgroud) 我知道您可以使用该命令创建环境变量env.
例如:
env A.B=D bash
Run Code Online (Sandbox Code Playgroud)
问题是env需要一个命令,从而创建一个新的子进程.